Ladar Transmission with Dynamic Scan Pattern Control

ABSTRACT

Various embodiments are disclosed for improved scanning ladar transmission, including but not limited to an example embodiment where feedback control is used to finely control mirror scan positions.

CROSS-REFERENCE AND PRIORITY CLAIM TO RELATED PATENT APPLICATIONS

This patent application is a continuation of U.S. patent applicationSer. No. 16/131,568, entitled “Ladar Transmitter with Feedback Controlof Dynamic Scan Patterns”, filed Sep. 14, 2018, now U.S. Pat. No.______, which is a continuation of U.S. patent application Ser. No.14/827,163, entitled “Method and System for Ladar Transmission withClosed Loop Feedback Control of Dynamic Scan Patterns”, filed Aug. 14,2015, now U.S. Pat. No. 10,078,133, which claims priority to U.S.provisional patent application Ser. No. 62/038,065, filed Aug. 15, 2014,the entire disclosures of each of which are incorporated herein byreference.

This patent application is related to the following patent applications:(1) U.S. patent application Ser. No. 14/827,175, entitled “Method andSystem for Ladar Transmission with Spinning Polygon Mirror for DynamicScan Patterns”, filed Aug. 14, 2015, now U.S. Pat. No. 10,073,166, (2)U.S. patent application Ser. No. 14/827,182, entitled “Method and Systemfor Ladar Transmission with Interline Skipping for Dynamic ScanPatterns”, filed Aug. 14, 2015, now U.S. Pat. No. 9,897,689, (3) U.S.patent application Ser. No. 14/827,189, entitled “Method and System forLadar Transmission with Spiral Dynamic Scan Patterns”, filed Aug. 14,2015, now U.S. Pat. No. 10,088,558, (4) U.S. patent application Ser. No.14/827,195, entitled “Method and System for Ladar Transmission EmployingDynamic Scan Patterns with Macro Patterns and Base Patterns”, Aug. 14,2015, now U.S. Pat. No. 10,042,043, (5) U.S. patent application Ser. No.14/827,202, entitled “Ladar Point Cloud Compression”, filed Aug. 14,2015, now U.S. Pat. No. 10,386,464, and (6) U.S. patent application Ser.No. 14/827,206, entitled “Method and System for Scanning LadarTransmission with Pulse Modulation”, filed Aug. 14, 2015, now U.S. Pat.No. 9,885,778, the entire disclosures of each of which are incorporatedherein by reference.

This patent application is also related to U.S. patent application Ser.No. 15/864,511, entitled “Method and System for Ladar Transmission withInterline Detouring for Dynamic Scan Patterns”, filed Jan. 8, 2018, nowU.S. Pat. No. 10,215,848.

INTRODUCTION

It is believed that there are great needs in the art for improvedcomputer vision technology, particularly in an area such as automobilecomputer vision. However, these needs are not limited to the automobilecomputer vision market as the desire for improved computer visiontechnology is ubiquitous across a wide variety of fields, including butnot limited to autonomous platform vision (e.g., autonomous vehicles forair, land (including underground), water (including underwater), andspace, such as autonomous land-based vehicles, autonomous aerialvehicles, etc.), surveillance (e.g., border security, aerial dronemonitoring, etc.), mapping (e.g., mapping of sub-surface tunnels,mapping via aerial drones, etc.), target recognition applications,remote sensing, safety alerting (e.g., for drivers), and the like).

As used herein, the term “ladar” refers to and encompasses any of laserradar, laser detection and ranging, and light detection and ranging(“lidar”). Ladar is a technology widely used in connection with computervision. In an exemplary ladar system, a transmitter that includes alaser source transmits a laser output such as a ladar pulse into anearby environment. Then, a ladar receiver will receive a reflection ofthis laser output from an object in the nearby environment, and theladar receiver will process the received reflection to determine adistance to such an object (range information). Based on this rangeinformation, a clearer understanding of the environment's geometry canbe obtained by a host processor wishing to compute things such as pathplanning in obstacle avoidance scenarios, way point determination, etc.However, conventional ladar solutions for computer vision problemssuffer from high cost, large size, large weight, and large powerrequirements as well as large data bandwidth use. The best example ofthis being vehicle autonomy. These complicating factors have largelylimited their effective use to costly applications that require onlyshort ranges of vision, narrow fields-of-view and/or slow revisit rates.

For example, ladar systems are known in the art where a ladartransmitter illuminates a large number of range points simultaneously.Flash ladar is an example of such a system. However, these conventionalsystems are believed to suffer from a number of shortcomings. Forexample, flash ladar systems require a very high energy per pulse laser,which is not only costly but can also be an eye hazard. Furthermore, theread-out integrated circuits for flash ladar systems are typically quitenoisy. Also, the wide field-of-view signal-to-noise ratio (SNR) forflash ladar systems is typically very low, which results in shortranges, thereby detracting from their usefulness.

In an effort to satisfy the needs in the art for improved ladar-basedcomputer vision technology, disclosed herein are a number of embodimentsfor methods and systems that apply scanning ladar transmission conceptsin new and innovative ways. Scanning ladar differs from flash ladar inthat scanning ladar sequentially transmits ladar pulses to targetedrange points as opposed to employing largely non-targeted flashillumination. While conventional scanning ladar solves many of theproblems experienced in connection with flash ladar, conventionalscanning ladar systems typically suffer from bulkiness and frame ratelimitations. In an effort to provide additional advancements in the art,disclosed herein are improved scanning ladar transmission techniques

For example, disclosed herein is a method comprising: (1) processing ashot list, the shot list comprising a plurality of range points fortargeting by a scanning ladar transmission system, (2) controlling adynamic scan pattern for the scanning ladar transmission system byscanning a mirror to a plurality of mirror scan positions based on theprocessed shot list using closed loop feedback control of the mirrorscan positions to target the range points of the processed shot list,wherein the mirror scan positions define where the scanning ladartransmission system is targeted, and (3) transmitting, by the controlledscanning ladar transmission system, a plurality of ladar pulses towardthe range points of the processed shot list in accordance with thedynamic scan pattern.

In an example embodiment, the scan positions are scan angles for amovable mirror, whereby the movable mirror rotates around an axis tochange its scan angle. However, it should be understood that the scanpositions need not be limited to scan angles, and other embodiments mayscan the movable mirror in lateral and/or elevation directions to definewhere the system is targeted.

As another example embodiment, disclosed herein is a method comprising:(1) targeting a scanning ladar transmission system to a plurality ofrange points in accordance with a dynamic scan pattern by (i) scanning afirst mirror on a first axis based on a first voltage waveform, and (ii)scanning a second mirror on a second axis based on a second voltagewaveform, wherein the second voltage waveform is a function of thetargeted range points, (2) transmitting a plurality of ladar pulses tothe targeted range points in accordance with the dynamic scan patternvia the scanning mirror, and (3) adjusting at least one of the first andsecond voltage waveforms based on closed loop feedback control withrespect to at least one of the scanning mirrors.

Further still, disclosed herein as another example embodiment is anapparatus comprising a scanning ladar transmission system, wherein thescanning ladar transmission system comprises: (1) a beam scanner, thebeam scanner including a mirror, wherein the beam scanner is configuredto (i) scan the mirror to a plurality of mirror scan positions inresponse to a control signal, and (ii) direct a plurality of incomingladar pulses onto the scanning mirror for transmitting the ladar pulsestoward a plurality of range points, (2) a beam scanner controller,wherein the beam scanner controller is configured to generate thecontrol signal for the beam scanner such that the control signal definesa dynamic scan pattern for the scanning ladar transmission system withrespect to the range points, and (3) a closed loop feedback system inoperative communication with the beam scanner and the beam scannercontroller, wherein the closed loop feedback control system isconfigured to (i) sense a plurality of actual mirror scan positions forthe mirror and (ii) provide a feedback signal to the beam scannercontroller indicative of the actual mirror scan positions for themirror, the feedback signal for use by the beam scanner controller toadjust the control signal in order to keep the transmitted ladar pulseson target toward the range points.

In accordance with yet another example embodiment, disclosed herein isan apparatus comprising: (1) a beam scanner, the beam scanner includinga first scanable mirror and a second scanable mirror, wherein the beamscanner is configured to (i) scan the first scanable mirror on a firstaxis to a plurality of mirror scan positions in response to a firstvoltage waveform, (ii) scan the second scanable mirror on a second axisto a plurality of mirror scan positions in response to a second voltagewaveform, and (iii) direct a plurality of incoming ladar pulses toward aplurality of range points via reflections of the ladar pulses from thefirst scanable mirror to the second scanable mirror an onward toward therange points, and (2) a beam scanner controller, wherein the beamscanner controller is configured to (i) generate the first and secondvoltage waveforms for the beam scanner such that the combination of thefirst and second voltage waveforms defines a dynamic scan pattern forthe beam scanner with respect to the range points, and (ii) adjust atleast one of the first and second waveforms based on closed loopfeedback control with respect to at least one of the first and secondscanable mirrors.

As yet another example embodiment, disclosed herein is a system fordynamic ladar scan control, the system comprising (1) a beam scannercomprising a first mirror and a second mirror, (2) a beam scannercontroller, and (3) a feedback system, wherein the first mirror isscanable to a plurality of first mirror scan angles in response to afirst control signal to define where the beam scanner is targeted alonga first axis in a field of view, wherein the second mirror is scanableto a plurality of second mirror scan angles in response to a secondcontrol signal to define where the beam scanner is targeted along asecond axis in the field of view, wherein the combination of the firstand second mirror scan angles defines a plurality of targetable rangepoints in the field of view for the beam scanner, wherein the beamscanner controller drives scanning of the first and second mirrors bygenerating the first and second control signals, and wherein the beamscanner controller dynamically generates the second control signal basedon shot list data that identifies a plurality of range points within thefield of view for targeting with ladar pulse shots to be transmittedinto the field of view via reflections from the first and second mirrorsso that (1) the dynamically generated second control signal varies as afunction of the identified range points from the shot list data to drivethe scanning of the second mirror in a point-to-point mode and (2) thebeam scanner dynamically targets the identified range points on ashot-by-shot basis, and wherein the feedback system tracks the firstand/or second mirror scan angles and produces an adjustment signal basedon the tracked first and/or second mirror scan angles, the adjustmentsignal for adjusting the first and/or second control signal tocontrollably fine tune where the beam scanner is targeted.

As still another example embodiment, disclosed herein is a ladartransmitter comprising (1) a first mirror that is scanable to aplurality of first mirror scan angles in response to a first controlsignal to define where the ladar transmitter is targeted along a firstaxis in a field of view, (2) a second mirror that is scanable to aplurality of second mirror scan angles in response to a second controlsignal to define where the ladar transmitter is targeted along a secondaxis in the field of view, wherein the combination of the first andsecond mirror scan angles defines a plurality of targetable range pointsin the field of view for the ladar transmitter, (3) a processor that (i)analyzes scene data representative of the field of view includingcontrast analysis of the scene data, (ii) identifies an area of highcontrast in the field of view based on the contrast analysis, and (iii)generates a shot list based on the analyzed scene data, wherein the shotlist identifies a subset of the targetable range points for targetingwith ladar pulse shots, and wherein the identified range points arespatially distributed across the field of view in a manner that exhibitsa relatively higher concentration of identified range points in theidentified high contrast area than in another area of the field of view,and (4) a controller that drives scanning of the first and secondmirrors by generating the first and second control signals, and whereinthe controller dynamically generates the second control signal based onthe shot list so that (i) the dynamically generated second controlsignal varies as a function of the identified range points from the shotlist to drive the scanning of the second mirror in a point-to-point modeand (ii) the ladar transmitter dynamically targets the identified rangepoints with ladar pulse shots on a shot-by-shot basis.

As still another example embodiment, disclosed herein is a ladartransmitter comprising (1) a first mirror that is scanable to aplurality of first mirror scan angles in response to a first controlsignal to define where the ladar transmitter is targeted along a firstaxis in a field of view, (2) a second mirror that is scanable to aplurality of second mirror scan angles in response to a second controlsignal to define where the ladar transmitter is targeted along a secondaxis in the field of view, wherein the combination of the first andsecond mirror scan angles defines a plurality of targetable range pointsin the field of view for the ladar transmitter, (3) a processor that (i)analyzes scene data representative of the field of view, (ii) identifiesa subset of the targetable range points based on the analyzed scenedata, the identified subset serving as a list of range points fortargeting with ladar pulse shots, and (iii) translates the list of rangepoints into a shot list that re-orders the range points of theidentified subset into a sequence of ladar pulse shots based on aplurality of operational constraints, wherein the operationalconstraints include a limit regarding how much time a laser source needsbetween ladar pulse shots, and (4) a controller that drives scanning ofthe first and second mirrors by generating the first and second controlsignals, and wherein the controller dynamically generates the secondcontrol signal based on the shot list so that (i) the dynamicallygenerated second control signal varies as a function of the range pointscorresponding to the sequence to drive the scanning of the second mirrorin a point-to-point mode and (ii) the ladar transmitter dynamicallytargets the range points of the identified subset with ladar pulse shotson a shot-by-shot basis in accordance with the sequence.

These and other features and advantages of the present invention will bedescribed hereinafter to those having ordinary skill in the art.

BRIEF DESCRIPTION OF THE DRAWINGS:

FIG. 1 depicts an example system embodiment.

FIG. 2A depicts an example process flow implemented by the systemcontroller of FIG. 1.

FIG. 2B depicts an example environmental scene image that includesselected range points for ladar targeting.

FIG. 2C depicts an example embodiment for a dynamic range pointselection algorithm.

FIG. 2D depicts an example embodiment for a fill point selectionalgorithm of an exemplary dynamic range point selection algorithm.

FIG. 3 depicts an example embodiment for a scanning ladar transmissionsystem.

FIGS. 4A-C depicts how positioning errors with respect to the scanningmirrors of a beam scanner can affect the useable scan area for ladartargeting.

FIG. 5 depicts an example embodiment of a beam scanner in combinationwith closed feedback control of mirror scan positions.

FIGS. 6A-C depicts example embodiments for closed loop optical feedbacksystems for use to finely control mirror scan positions.

FIG. 7A depicts an example embodiment for error correction in a closedloop feedback system.

FIGS. 7B and 7C depict example voltage waveforms that relate tocontrolling the mirror scan positions.

FIGS. 8A-F depicts examples of dynamic scan patterns that can be used bythe scanning ladar transmission system.

FIG. 9A depicts an example embodiment for converting a list of rangepoints into a shot list for ladar targeting.

FIG. 9B depicts another example embodiment for converting a list ofrange points into a shot list for ladar targeting.

FIG. 9C-F depicts examples of range point list-to-shot list conversions.

FIG. 10 depicts an example embodiment for a beam scanner controller.

FIGS. 11A-G depict example embodiments for beam scanners that employ atleast one scanning mirror in combination with a spinning polygon mirror.

FIGS. 12A and B depict examples of laser pulse encoding patterns thatcan be used by the ladar transmitter.

DETAILED DESCRIPTION:

FIG. 1 illustrates a system 100 for dynamic scanning ladar transmissionin accordance with an example embodiment. The system 100 includes asystem controller 102 in communication with a scanning ladartransmission system 104 and an environmental sensing system 106. Theenvironmental sensing system 106 can be configured to sense anenvironmental scene 108 and provide environmental scene data 110 to thesystem controller 102. Based on an analysis of the environmental scenedata 110, the system controller 102 can generate control information 112for delivery to the scanning ladar transmission system 104. The scanningladar transmission system, in turn, can transmit ladar pulses 114 inaccordance with the control information 112 received from the systemcontroller 102. As explained in further detail below, the scanning ladartransmission system 104 can employ closed loop feedback control of thescan positions for the scanning ladar transmission system 104.

Although not shown, it should be understood that a ladar receiver can beused in combination with the ladar transmission system, wherein theladar receiver receives reflections of the ladar pulses to support thedetermination of range information based on the transmitted ladarpulses.

The environmental sensing system 106 can include a sensor that sensesdata about a nearby environmental scene 108 to generate environmentalscene data 110 for delivery to the system controller 102. An example ofa suitable sensor includes a camera such as a CCD camera, thermal cameraor the like. Another example of a suitable sensor can include anotherladar system. The environmental scene data 110 can include frames ofimage data for the environmental scene generated by a camera, and theenvironmental sensing system 106 can be configured to generate frames ofthe environmental scene on a rolling basis for delivery to the systemcontroller 102. As another example, a sensor can be a global positioningsystem (GPS) receiver and/or Inertial Measurement Unit (IMU) or the likethat is capable of determining the geographic position and direction ofthe environmental sensing system 106. Based on the determined geographiclocation, a database that includes map information such as a street mapand/or a terrain map can be accessed to obtain environmental scene data110. As such, it should be understood that the environmental scene data110 can take any of a number of forms, including still images, videoimages, maps, ladar data, and others such as any accompanying “highvalue target data” corresponding to high value locations within theenvironmental scene data to be queried.

In an example embodiment, for an initial scan, the environmental sensingsystem can use a sensor such as a camera to generate the environmentalscene data, but additional scans can employ, as the environmental scenedata 110, 3D image data generated from the data received by a laserrange receiver in response to the ladar pulses sent by the scanningladar transmission system.

The system controller 102 can include a processor 120 and memory 122.The processor 120 and memory 122 can be configured to interact with eachother such that the processor 120 executes instructions stored in memory122. The processor 120 may be any type processor with sufficientcomputational capabilities to implement the processing operationsdescribed herein. It should be understood that processor 120 maycomprise multiple processors, optionally distributed via a network. Theprogramming instructions for implementing the processing logic executedby the processor 120 may be resident on a non-transitorycomputer-readable storage medium (e.g., memory 122) for access andexecution by the processor 120. It should also be understood that thememory 122 may comprise multiple memory devices, which may be multipledistributed memory devices and/or memory devices of different types,including but not limited to one or more hard drives, random accessmemories (RAMs), removable storage media such as flash drives, opticalmedia, and the like, etc. The memory 122 may also store a plurality ofdata structures that reflect any information computed by the processor,such as lists of selected range points, shot lists, etc. as describedbelow. A data structure may be a physical manifestation of informationorganized within a computing system. Examples of data structures mayinclude data objects, files, records, tables, arrays, trees, and thelike.

In operation, the processor 120 can process the environmental scene data110 received from the environmental sensing system 106 to generatecontrol information 112 that will govern the operation of the scanningladar transmission system 104. This control information 112 may includetargeting information that defines where the scanning ladar transmissionsystem 104 will send its ladar pulses 114, examples of which areprovided in the description below.

The scanning ladar transmission system 104 is configured to controllablytransmit ladar pulses 114 to desired targets based on the controlinformation 112 received from the system controller 102. The scanningladar transmission system 104 can be configured to scan to a desiredtarget via one or more movable mirrors that can direct a ladar pulse tothe desired target. Examples of scanning ladar transmission systems 104are included in the description that follows.

System Controller 102—Configuration and Operation:

FIG. 2A depicts a general process flow for execution by processor 120 togenerate control instructions 112 (a shot list in this example) frominput environmental scene data 110. The data 110 serves as a priori dataabout the environmental scene 108 that will be processed by theprocessor 120 at step 200. Based in this processing, the processorgenerates a list of range points for targeting with the scanning ladartransmission system 104 (step 202). This list can be generated byselecting a subset of possible range points, where the selected rangepoints then serves as a sparse array or point cloud that representssalient features of the environmental scene to be targeted by thescanning ladar transmission system 104. In an example where the a prioridata 110 is an image, the sparse array that serves as the list ofselected range points can be a subset of the pixels in the a prioriimage data 110.

Next, at step 204, the processor 120 translates the list of range pointsgenerated by step 202 into a shot list for the scanning ladartransmission system 104. This shot list can serve as the controlinformation 112 for the scanning ladar transmission system 104. Whilethe list of range points generated at step 202 can be merely a list ofselected range points for targeting, the shot list serves as an orderedlist of the selected range points for targeting by the scanning ladartransmission system, where the ordering takes into consideration thecapabilities and limitations of the scanning ladar transmission system104 as well as a desired scan pattern for the system operation. Whilethe example of FIG. 2A shows step 204 being performed by processor 120,it should be understood that step 204 could be performed by othercomponents in the system. For example, step 204 could be performed by abeam scanner controller 308 within the scanning ladar transmissionsystem 104. As another example, processor 120 can be configured toperform a portion of step 204 while beam scanner controller 308 could beconfigured to perform the remaining portion of step 204. For an exampleembodiment where step 204 is performed by processor 120, then thecontrol information 112 can include the shot list. However, for anexample embodiment where step 204 is performed by the beam scannercontroller 308 within the scanning ladar transmission system 104, thenthe control information 112 can include the range point list from step202.

FIG. 2B depicts an example that shows the results of step 202 for asample image of an environmental scene. In this example, theenvironmental scene data 110 shows a road and nearby topographicalscenery. The processor at step 202 can select a plurality of intelligentrange points 210 and a plurality of fill range points 212 to be includedin the range point list. As explained below, intelligent range pointsare range points that are found by the system to exhibit a high utilityfor the purposes of critically sampling a scene, while fill range pointsare range points that provide scaffolding for the detail of theintelligent range points. Together, these points 210 and 212 can definethe sparse array of range points. By reducing the size of the pointarray used to represent the environmental scene, it is believed that ascanning ladar transmission system can support higher frame ratesbecause it will be able to scan an environmental scene more quickly dueto the reduced point load on the scanning ladar transmission system. Itis further believed that the sparse array may also support improvedrange for the ladar system primarily because the laser could operatewith a lower repetition rate, in which case the laser can exhibit ahigher amount of energy per pulse (which would in turn translate intolonger ranges supported by the system). It is expected that exampleembodiments will be capable of ranging up to distances of around 2 km oreven higher (e.g., around 10 km).

The intelligent range points 210 can be selected based on any of anumber of criteria. For example, areas of high contrast can be deemed tobe areas of interest for the system that should include a relativelyhigh concentration of range points. Thus, step 202 can operate tointelligently select a high concentration of range points in areas ofhigh contrast based on an analysis of the image data 110. This is shownby the example of FIG. 2B where the intelligent range points 210 areconcentrated in relatively high contrast areas of the image such as theshoulder boundary for the road, the break between the road and non-roadterrain, and the horizon boundary between the distant mountains and sky.Additional criteria that can be used to identify salient range pointsare images areas that exhibit lines or corners. To flesh out otherportions of the image 110, the processor 202 can define a fill patternand select fill range points 212 based on the defined fill pattern.Furthermore, a practitioner may choose to employ additional stereoscopic3D information or structure from motion algorithms to supplement thesparse array with additional range points.

An example process flow for the dynamic selection of intelligent rangepoints and fill range points can be seen in FIGS. 2C and 2D. It shouldbe understood that FIGS. 2C and 2D generally correspond to steps 200 and202 from FIG. 2A. With reference to FIG. 2C, at step 220, the processorapplies a pre-filtering process to the environmental scene data 110. Forthis example, the environmental scene data can be an image. Thepre-filtering process can be designed to suppress high frequency noiseor other unwanted artifacts in the image. The pre-filtering process mayalso include an edge detection operation to identify areas of highcontrast in the image 110. The processor can apply any of a plurality ofselectable filter operations to perform step 220. The selection ofappropriate filters can be controlled by a filter select parameter,where the filter select parameter can be included as a set of parameters250 that are used to control the range point selection. Parameters 250can be defined based on user input or a feedback algorithm thatoptimizes the parameters based on data from the environmental sensingsystem, other sensors (such as GPS, IMU), and/or a macro operation modeset by the user.

At step 222, the processor may identify super pixels for the image 110.In doing so, the processor is able to break the image 110 into naturalor smaller segments. Parameters 250 that can be used at step 222 tocontrol the identification of super pixels can include a size parameterand a threshold parameter. Any of a number of image segmentationalgorithms can be used in the performance of step 222, including but notlimited to simple linear iterative clustering (SLIC) segmentation,QuickShift segmentation, TurboPixels segmentation, normalized cutssegmentation, and/or graph-based segmentation. Size and thresholdparameters 250 can be used to control the nature of the segmentation atstep 222. By breaking the image 110 into natural or smaller segmentsusing super pixel segmentation techniques, intelligent range points canthen be identified as a result of processing each natural/smallersegment which is expected to enhance and improve range point selectionand ultimately 3D scene interpretation and reconstruction.

Next, at step 224, the processor selects candidates for intelligentrange points to be included in the list of range points. Thus, theoutput of step 226 represents the list of intelligent range points thathave been selected for ladar scanning. Step 224 can be performed on asegment-by-segment basis with respect to the super pixel segments foundas a result of step 222. Any of a number of techniques can be used inthe performance of step 224. For example, techniques that are effectiveto identify points corresponding to edges, and corners in an image canbe employed. An example of an open source method that can be employed inthis regard is the use of the Harris Corner Detector open sourcealgorithm included in the OpenCV library. However, it should beunderstood that other techniques and tools are available forimplementing step 224, such as the Shi Tomasi algorithm , the Featuresfrom Accelerated Segment Test (FAST) algorithm, the Smallest UnivalueSegment Assimilating Nucleus (SUSAN) algorithm, and other cornerdetection algorithms. Parameters 250 that can be used at step 224 tocontrol the initial selection of intelligent range points can includedistance parameters, angle parameters, and density parameters. Thedistance parameters define different spacing parameters between types ofpoints such as corner points. The distance parameter can be expressed inunits of pixels. Spacing for the distance parameters may also be afunction of range, in which case the distance parameters may change as afunction of previous image frames and previous range information. Theangle parameters are used to make spacing a function of azimuth and/orelevation. For example, at larger angles, it may be better to reducespacing between points. The density parameters are other types ofspacing parameters that can mostly be used as upper or lower limits forsome distance values.

At step 226, the processor refines the list of selected intelligentrange points from step 224 to make a final selection of intelligentrange points. As part of this operation, step 226 can utilize aparameter 250 that defines a point budget for the list of range points.This point budget can identify a maximum number of range points for thelist of range points. The value for the point budget parameter can beany of a number of values depending upon the desires of a practitioner.As an example, the point budget can be around 0.3% to around 3.0% of thenumber of pixels in the image data 110. However, it should be understoodthat other values or metrics for expressing the point budget can beused.

In a simple example embodiment, step 226 can be configured to considerthe point budget parameter 250 and operate to (1) select all intelligentrange point candidates for inclusion in the final range point list ifthe number of intelligent range point candidates is less than the pointbudget or a defined portion thereof (in which case the remainderrelative to the point budget or point budget portion is allocated forfill range points), and (2) reduce the number of intelligent rangepoints selected at step 224 so as to comply with the point budget ordefined portion thereof.

In another example embodiment, step 226 can adjust and/or augment theintelligent range point candidates when selecting the intelligent rangepoints for inclusion in the list. For example, some intelligent rangepoint candidates might be shifted up, down, left, or right by somedistance depending on predictive algorithms that may be employed duringrefinement. As another example, in the case of edge points, one or moreadditional intelligent range points might be added on either side of anintelligent range point candidate corresponding to an edge in order tobetter define the edge. In the case of corner points one or moreadditional points may surround the corner points. And still anotherexample additional range points may surround points corresponding tomoving objects such as pedestrians in the case of a vehicle application.

Still further, step 226 can also be configured to take into account theconfiguration of the scanning ladar transmission system 104 with respectto its dynamic scan pattern. As explained below, the scanning ladartransmission system 104 can be configured to perform scans of rangepoints using any of a number of dynamic scan patterns, where eachdynamic scan pattern may exhibit different characteristics whereperformance can be improved by altering the selection of intelligentrange points. For example, for a given type of scanner, it may be betterto step down on intelligent range point to the next row if doing sowould avoid a line skip and the stepping down of the intelligent rangepoint would be compliant with one of the density parameters thatcontrols the upper limit on how many pixels away a point can shiftwithout impacting its selection (that is, if the pixel slightly belowthe originally chosen pixel candidate will perform just as well, thenthe adjustment can be made to improve scanning performance).

At step 228, the processor generates a set of fill range points thatfill out the list of range points for ladar scanning. FIG. 2Dillustrates an example process flow for performing step 228. As shown inFIG. 2C, the point budget parameter will help govern the operation ofstep 228.

At step 230, the processor combines the list of intelligent range pointsfrom step 226 and the list of grid range points from step 228 to createthe list of range points 240 to be used for ladar scanning. This list240 generally corresponds to the output of step 202 from FIG. 2A. Eachrange point on list 240 can be expressed in terms of a locationinformation such as a row and column number for the location of thatpoint within image 110.

FIG. 2D describes the operation of step 228 in greater detail. At step260, the processor determines a desired spacing between fill rangepoints. This determination is affected by the defined point budget. Forexample, if the point budget is X, and the operation of step 226 resultsin the selection of Y intelligent range points (where Y<X), the processflow of FIG. 2D will have a budget of X−Y to work with when selectingfill range points. The value of X−Y, in turn, will influence thedetermined spacing between fill range points at step 260. Additionalfactors that can affect the operation of step 260 include the scanpattern dynamics (such as the minimal spacing permitted betweenconsecutive shots).

At step 262, the processor chooses a fill pattern for the fill rangepoints. Examples of fill patterns that can be chosen at step 262 includesquare grid patterns, diamond grid patterns, and staggered grid patterns(in which case, there are multiple square grids, but each successivegrid row has an offset from the previous grid column or row depending onwhich one corresponds to the fast axis). Fill pattern selection canchoose an optimal fill pattern for the point spacing determined at step260. The fill pattern selection may also take into considerationenvironmental factors as determined from the image 110. For example, ifthe image is an overhead view of the ground, this fact might influencethe selection of a particular fill pattern, while if the image is ahorizon view that includes both the ground and the sky, this fact mightinfluence the selection of a different fill pattern. The fill patternmay also be translated and wrapped (effectively a 3D rotation in 2D)horizontally and/or vertically from frame to frame such that after Nnumber of frames, all addressable pixels within the space of possiblefill points will be chosen. Once the fill pattern has been chosen, step262 is able to generate a list of candidate fill points based on thechosen fill pattern and the determined point spacing.

Also, it should be understood that different fill patterns can be chosenfor different segments of the image 110. As noted, at step 222, theprocessor identifies different image segments that the image 110 can bebroken into. Thus, at step 262, different fill patterns can be appliedto different segments of the image 110. For example, the fill patternfor an image segment above the horizon may have a lower fill densitythan an image segment below the horizon.

At step 264, the processor loops through the candidate fill points. Atstep 266, a comparison is made between each candidate fill point and theselected intelligent range points from step 226. If there is a selectedintelligent range point within a defined threshold distance of thecandidate fill point, then that candidate fill point can be eliminated(step 268). Otherwise, the candidate fill point is retained. The definedthreshold distance for this comparison operation can be a parameter thatis defined in response to user input or an AI algorithm. The loopingstarted at step 264 terminates at step 268 after each candidate fillpoint has been considered for retention at step 266. Thus, uponcompletion of the FIG. 2D process flow, the processor has defined thelist of fill range points for ladar scanning.

FIG. 9F depicts an example range point list 240 that can be generated asa result of the operation of FIGS. 2C and 2D. In the example of FIG. 9F,each selected range point is defined by a row number (left side) and acolumn number (right side). It should be understood that this list canbe a simple raw list of range points. If desired, a practitioner canfurther process the range point list to impose an order to the rangepoints with respect to the dynamic scan pattern that will be employed bythe scanning ladar transmission system 104. That is, each range point onthe range point list can be placed in a sequence with the other rangepoints on the list that will define the shot order of range points forthe scanning ladar transmission system 104. As explained, thistranslation of a range point list to a shot list can be performed atstep 204 by the processor. As noted, the shot list defines an order forthe range points to be shot by the scanning ladar transmitter system104. FIGS. 9A-9F, discussed in greater detail below, depict examples ofprocess flows that can be used for translating a range point list 240into a shot list. FIG. 9F also shows an example shot list 950 generatedfrom a range point list 240. In this example, the order is defined witha top down order where the range points that are higher on the shot listwill be shot prior to the range points that are lower on the shot list(e.g., the range point at row (“Srow”) 104, column (“SCol”) 19 will beshot before the range point at row (“Srow”) 104, column (“SCol”) 26, andso on). The leftmost and middle columns define the row number and columnnumber, respectively, for a given range point on the shot list. Theother columns in the shot list table provide additional controlinformation for the scanning ladar transmitter system 104, as explainedbelow in connection with FIGS. 9A-F. The example shot list of FIG. 9Falso includes fill shots that are added at step 204 due to factors suchas a minimum spacing parameter for the transmission laser.

The example shot list of FIG. 9F can serve as the control information112 that is provided to the scanning ladar transmission system 104 togovern its operation. While the example embodiments of FIGS. 2C and 9Fdescribe an arrangement where the range points on the shot list aredelivered to the scanning ladar transmission system 104 as a batch, itshould be understood that the shots in the shot list could alternativelybe communicated to the scanning ladar transmission system on a rollingbasis where each shot is passed to the scanning ladar transmissionsystem once it is identified. Thus, the shot list can be delivered tothe scanning ladar transmission system 104 and processed thereby in botha batch mode and a rolling mode.

Scanning Ladar Transmission System 104:

FIG. 3 depicts an example embodiment for a scanning ladar transmissionsystem 104. The system 104 can include a laser source 300 in opticalalignment with laser optics 302, a beam scanner 304, and transmissionoptics 306. These components can be housed in a packaging that providesa suitable shape footprint for use in a desired application. Forexample, for embodiments where the laser source 300 is a fiber laser orfiber-coupled laser, the laser optics 302, the beam scanner 304, and anyreceiver components can be housed together in a first packaging thatdoes not include the laser source 300. The laser source 300 can behoused in a second packaging, and a fiber can be used to connect thefirst packaging with the second packaging. Such an arrangement permitsthe first packaging to be smaller and more compact due to the absence ofthe laser source 300. Moreover, because the laser source 300 can bepositioned remotely from the first packaging via the fiber connection,such an arrangement provides a practitioner with greater flexibilityregarding the footprint of the system.

Based on the control information 112, such as a shot list as generatedat step 204 of FIG. 2A, a beam scanner controller 308 can be configuredto control the nature of scanning performed by the beam scanner 304 aswell as control the firing of the laser source 300 (see 312 in FIG. 3).A closed loop feedback system 310 is employed with respect to the beamscanner 304 and the beam scanner controller 308 so that the scanposition of the beam scanner 304 can be finely controlled, as explainedbelow.

The laser source 300 can be any of a number of laser types suitable forladar pulse transmissions as described herein.

For example, the laser source 300 can be a pulsed fiber laser. Thepulsed fiber laser can employ pulse durations of around 1-4 ns, andenergy content of around 0.1-100 μJ/pulse. The repetition rate for thepulsed laser fiber can be in the kHz range (e.g., around 1-500 kHz).Furthermore, the pulsed fiber laser can employ single pulse schemesand/or multi-pulse schemes (see FIGS. 12A and 12B). However, it shouldbe understood that other values for these laser characteristics could beused. For example, lower or higher energy pulses might be employed. Asanother example, the repetition rate could be higher, such as in the10's of MHz range (although it is expected that such a high repetitionrate would require the use of a relatively expensive laser source undercurrent market pricing).

As another example, the laser source 300 can be a pulsed IR diode laser(with or without fiber coupling). The pulsed IR diode laser can employpulse durations of around 1-4 ns, and energy content of around 0.01-10μJ/pulse. The repetition rate for the pulsed IR diode fiber can be inthe kHz or MHz range (e.g., around 1 kHz-5 MHz). Furthermore, the pulsedIR diode laser can employ single pulse schemes and/or multi-pulseschemes (see FIGS. 12A and 12B).

The laser optics 302 can include a telescope that functions to collimatethe laser beam produced by the laser source 300. Laser optics can beconfigured to provide a desired beam divergence and beam quality. Asexample, diode to mirror coupling optics, diode to fiber couplingoptics, and fiber to mirror coupling optics can be employed dependingupon the desires of a practitioner.

The beam scanner 304 is the component that provides the system 104 withscanning capabilities such that desired range points can be targetedwith ladar pulses. The beam scanner receives an incoming ladar pulsefrom the laser source 300 (by way of laser optics 302) and directs thisladar pulse to a desired downrange location (such as a range point onthe shot list) via reflections from movable mirrors. Mirror movement canbe controlled by a driving voltage waveform 314 received from the beamscanner controller 308. Any of a number of configurations can beemployed by the beam scanner 304. For example, the beam scanner caninclude dual microelectromechanical systems (MEMS) mirrors, a MEMSmirror in combination with a spinning polygon mirror, or otherarrangements. An example of suitable MEMS mirrors are single surfacetip/tilt/piston MEMS mirrors. By way of further example, in an exampledual MEMS mirror embodiment, a single surface tip MEMS mirror and asingle surface tilt MEMS mirror can be used. However, it should beunderstood that arrays of these MEMS mirrors could also be employed.Also, the dual MEMS mirrors can be operated at any of a number offrequencies. For example, if a first MEMS mirror is acting as a fastaxis mirror and a second MEMS mirror is acting as a slow axis mirror,the ratio of resonant frequencies between the second and first MEMSmirrors can fall in a range of around 1:5 to around 1:9 However, apractitioner may choose to employ different ratios. As another exampleof other arrangements, a miniature galvanometer mirror can be used as afast-axis scanning mirror. As another example, an acousto-opticdeflector mirror can be used as a slow-axis scanning mirror.Furthermore, for an example embodiment that employs the spiral dynamicscan pattern discussed below, the mirrors can be resonating galvanometermirrors. Such alternative mirrors can be obtained from any of a numberof sources such as Electro-Optical Products Corporation of New York. Asanother example, a photonic beam steering device such as one availablefrom Vescent Photonics of Colorado can be used as a slow-axis scanningmirror. As still another example, a phased array device such as the onebeing developed by the DARPA SWEEPER program could be used in place ofthe fast axis and/or slow axis mirrors.

Also, in an example embodiment where the beam scanner 304 includes dualmirrors, the beam scanner 304 may include relay imaging optics betweenthe first and second mirrors, which would permit that two fast axismirrors be used (e.g., two small fast mirrors as opposed to one smallfast mirror and one long slower mirror).

The transmission optics 306 are configured to transmit the ladar pulseas targeted by the beam scanner 304 to a desired location through anaperture. The transmission optics can have any of a number ofconfigurations depending upon the desires of a practitioner. Forexample, the environmental sensing system 106 and the transmitter 104can be combined optically into one path using a dichroic beam splitteras part of the transmission optics 306. As another example, thetransmission optics can include magnification optics (an example ofwhich is shown in FIG. 5). Further still, an alignment pickoff beamsplitter can be included as part of the transmission optics 306.

Beam Scanning Configuration and Control:

The beam scanner controller 308 can provide one or more voltagewaveforms 314 to the beam scanner 304 that will drive the mirrors of thebeam scanner to a desired scan position (e.g., scan angle). Given thehigh oscillation rates of the movable mirrors within the beam scanner304, a fine degree of control over the beam scanner's scan positions isdesirable. With respect to an example embodiment where a first mirror ofthe beam scanner 304 serves to rotate over a first axis at a relativelyhigh speed (the “fast axis”) while a second mirror of the beam scanner304 serves to rotate over a second axis orthogonal to the first axis ata relatively slower speed (the “slow axis”), slight errors in mirrorpositioning when the ladar pulses are incident to the mirrors can causesignificant degradation in system performance.

FIGS. 4A-4C illustrate this phenomenon. FIG. 4A depicts a desired scanarea 400 for the beam scanner 304. However, as shown by FIG. 4B, withoutfine slow-axis control (the Y-axis in this example), the useable scanarea 402 shrinks relative to scan area 400 as the areas 404 are requiredfor the Y axis mirror to settle down during rotation. Furthermore, thissettling time may increase as a function of the number of lines to beskipped in a dynamic scan pattern, although even with no line skipping,settlement time considerations still apply. Further still, as shown byFIG. 4C, with respect to the fast axis (the X-axis in this example),phase shifts in the targeted range points 406 can occur that causewaviness and other artifacts in the scan area if fine control over thescan position of the fast axis mirror is not achieved.

As a solution to these problems, a closed loop feedback system 310 canbe employed to provide fine control over the scan position of at leastone mirror employed by the beam scanner 304. The beam scanner controller308 can then use the feedback information from the closed loop feedbacksystem to adjust at least one of the mirror driving waveforms 314 andthereby achieve finer control over mirror positioning. In a preferredembodiment, this feedback control is employed with respect to bothmirrors of the beam scanner 304.

FIG. 5 depicts an example embodiment for a beam scanner 304 incombination with closed loop feedback. In this example, the beam scanner304 includes dual MEMS mirrors. A Y-axis MEMS mirror 500 is positionedto receive an incident laser pulse from the laser source 300 by way oflaser optics 302. The X-axis MEMS mirror 500 will reflect this laserpulse to the Y-axis scanning MEMS mirror 502. It should be understoodthat this reflection can be a direct reflection or an indirectreflection whereby the beam reflected from the X-axis MEMS mirror passesthrough relay imaging optics such as a unity magnification telescope onits way to the Y-axis MEMS mirror 502. The Y-axis MEMS mirror 502 ispositioned to receive the reflected laser pulse from mirror 500 andfurther reflect this laser pulse to a location within the scan area 510corresponding to the range point on the shot list that is being targetedby the beam scanner 304.

The MEMS mirrors 500 and 502 are controllably rotatable around theirrespective axes of rotation. The X-axis MEMS mirror 500 will berotatable to control the position of the ladar pulse within the scanarea 510 along the scan area's X-axis, while the Y-axis MEMS mirror 502will be rotatable to control the position of the ladar pulse within thescan area 510 along the scan area's Y-axis. Thus, the combinedpositioning of mirrors 500 and 502 along their respective axes ofrotation when the laser pulse strikes each mirror will be effective todirect the laser pulse to the desired location within the scan area 510.In this example embodiment the X-axis MEMS mirror 500 can be rotated ata relatively higher rate than the Y-axis MEMS mirror 502, hence thereference to the X-axis MEMS mirror as the fast axis mirror and thereference to the Y-axis MEMS mirror as the slow axis mirror.

It should be understood by a practitioner that the designation of thefast axis as the X-axis and the slow axis as the Y-axis is arbitrary asa 90 degree turn in position for the system would render the X-axis asthe slow axis and the Y-axis as the fast axis. Furthermore, in anexample embodiment, the fast axis mirror is smaller than the slow axismirror in terms of mirror area and is also positioned upstream from theslow axis mirror (that is, the fast axis mirror receives the ladar pulseand reflects it to the slow axis mirror for transmission toward thetargeted range point). However, this configuration could be changed forother embodiments. For example, while making the slow axis mirror largerthan the fast axis mirror provides a benefit in terms of permitting alarger scan area, for embodiments where a decrease in the size of thescan area is permissible, the slow axis mirror could be the same size oreven smaller than the fast axis mirror. As another example, if the fastaxis mirror were downstream from the slow axis mirror, re-imagingoptics, such as relay imaging optics, could be used between the twomirrors to support such an arrangement.

Furthermore, the transmission optics 306 can be configured to providefield of view magnification of the directed laser pulse.

An X-axis closed loop feedback system 504 can be used to achieve finecontrol over the positioning of the X-axis MEMS mirror 500. A Y-axisclosed loop feedback system 506 can be used to achieve fine control overthe positioning of the Y-axis MEMS mirror 502. As indicated above, whileit is preferable to employ feedback control over both the X-axis andY-axis mirrors 500 and 502, it is believed that improvements inperformance relative to an open loop, no feedback design can still beachieved through application of feedback control to only one of themirrors. For example, a practitioner might choose to employ only theY-axis feedback control system 506. As another example, a practitionermight choose to employ only the X-axis feedback control system 504.

FIG. 6A depicts an example embodiment for how closed feedback controlcan be implemented for the Y-axis mirror 502. In this example, theclosed loop feedback control is closed loop optical feedback control.Mirror 502 rotates around the axis of rotation 622 to direct an incidentladar pulse 620 in a desired manner via reflection off the frontside ofthe mirror 502. A laser 600 be targeted at a backside 606 of the mirror502. The laser 600 can be any type of laser suitable for positiondetection. For example, laser 600 can be a pulsed or continuous wave(CW) visible diode laser. Laser 600 can exhibit a variable pulse widthand produce power in the uW to mW range.

The laser beam 604 produced by laser 600 will be reflected off thebackside 606 of mirror 502, and a Y-axis position sensitive detector 602can be positioned to receive this reflection. The detector 602 can be asingle axis position sensing detector. The angular position of mirror502 with respect to axis of rotation 622 will affect where the reflectedlaser beam 604 is received by the detector 602. Thus, the positiondetector 602 will be able to sense data indicative of the actualposition of mirror 502. This sensed data can then be fed back via 608for improved Y-axis mirror control.

FIG. 6B depicts an example embodiment for how closed feedback controlcan be implemented for the X-axis mirror 500, and operates in the samefashion as the example of FIG. 6A. Mirror 500 rotates around the axis ofrotation 632 to direct an incident ladar pulse 630 in a desired mannervia reflection off the frontside of the mirror 500. A laser 610 betargeted at a backside 616 of the mirror 500. Laser 610 can be a lasersimilar to laser 600.

The laser beam 614 produced by laser 610 will be reflected off thebackside 616 of mirror 500, and an X-axis position sensitive detector612 can be positioned to receive this reflection. The angular positionof mirror 500 with respect to axis of rotation 632 will affect where thereflected laser beam 614 is received by the detector 612. Thus, theposition detector 612 will be able to sense data indicative of theactual position of mirror 500. This sensed data can then be fed back via618 for improved X-axis mirror control.

FIG. 6C depicts another example embodiment for closed loop feedbackcontrol of mirror positioning. While the examples of FIGS. 6A and 6B, ifused together, employ two lasers 600 and 610 and two position detectors602 and 612 to detect mirror positions, the example of FIG. 6C employs asingle laser 650 and a single two-axis position sensitive detector 662.

With the example of FIG. 6C, a beam splitter 654 such as a dichroic beamsplitter or pick-off mirror is positioned to intercept the laser pulseemanating from the laser optics 302 before it strikes mirror 500. Analignment laser 650 is also positioned to direct an alignment laser beam652 onto the beam splitter 654. The dichroic beam splitter (acting as abeam combiner) co-aligns the laser beam from laser source 300 with thealignment laser beam 652. As such, the aligned laser beams will beincident on mirror 500 such that the laser lies completely within themirrors plane of rotation i.e. perpendicular to the mirror's axis ofrotation. The dichroic beam splitter 654 can be positioned to achievesuch co-alignment, and a 90 degree combination angle as between thelaser 300 and alignment laser 650 is typical. Laser 650 can be a visibleCW or high repetition rate pulsed diode laser.

Also, a beam splitter 656 such as a pick-off beam splitter can bepositioned to intercept the reflected laser light from mirror 502, whichwill include both the targeting ladar pulse 666 generated by lasersource 300 and the alignment laser beam 652 generated by laser 650. Thebeam splitter 656 will direct the ladar pulse 666 toward the targetedrange point while also reflecting a small portion of the light ontore-imaging lens 658. The re-imaging lens 658 will ultimately re-imagethe scan field 510 onto a two-axis position sensitive detector 662. Theposition detector 662 will be able to detect the position of thereflected alignment laser beam 652 along two-axes, and this detectedposition can serve as data indicative of the actual positions for bothmirrors 500 and 502. This sensed data can then be fed back via 664 forimproved X-axis and Y-axis mirror control.

FIG. 7A depicts an example arrangement whereby the closed loop feedbacksystem 310 can process the sensed position data from the positiondetectors to generate an error signal that can be used to drive anadjustment correction to the driving waveforms for the mirror scanpositions. In this example, the closed loop feedback system 310 is usedto finely tune the positioning of a MEMS mirror 500/502) in the scanner304. The beam scanner controller 308 and a MEMS driver within scanner304 will apply MEMS drive voltages 700 to the MEMS mirror 500/502. Thisresults in mechanical movement 702 of the mirror to a desired mirrorposition. However, as noted, it is expected that there may be some errorin this positioning that is to be mitigated via the closed loop feedbacksystem. As explained in connection with the example embodiments of FIGS.6A-C, an optical beam deflection 704 can be sensed by any of theposition sensors 602/612/662 described in connection with the exampleembodiments of FIGS. 6A-C. The position sensor may be accompanied by atrans-impedance amplifier (TIA) that serves to amplify the signal sensedby the position sensor for signal processing purposes. The positionsensor can produce sensed mirror position data 706 that is indicative ofthe actual position of the MEMS mirror. Thus, if the Y-axis mirror wasexpected to target Row 3 of the scan area, but the actual sensedposition for the Y-axis mirror was effective to target Row 4 of the scanarea, the feedback system can detect an error of 1 row downward. Thiserror measurement can be fed to the beam scanner controller 308 so thatthe beam scanner controller can adjust the driving waveform for theY-axis mirror to achieve an upward adjustment of 1 row.

The sensed mirror position data 706 can be combined with the desiredmirror position data 708 that is used as an input by comparator 710 tocompute a measured error 712. The measured error 712 can be a value thatis indicative of the difference between the actual and expected mirrorpositions.

The beam scanner controller 308 may then use any of a number oftechniques to process the desired mirror position data 708 in view ofthe measured error 712 to adjust the MEMS drive voltages 700 in view ofthis measured error 712. For example, proportional-integral-derivative(PID) control techniques may be used to perform this feedback control.As another example, device inverse response waveforms can be used, inwhich case a stored response waveform is used to counter the naturaldevice step response and reduce settling time.

FIG. 7B depicts example driving waveforms 720 and 722 that might be usedto drive the mirror positions for the X-axis mirror 500 and the Y-axismirror 502 respectively. In this example, the fast axis X-axis mirror500 is driven in a resonant mode while the slow axis Y-axis mirror 502is driven in a point-to-point mode where the driving waveform 702 variesas a function of the shot list. These examples show the drivingwaveforms in an uncorrected form where no feedback is used to fine tunemirror positioning.

FIG. 7C depicts examples of how mirror positioning error can becorrected by an exemplary closed loop feedback system 310.

The left frame of FIG. 7C shows an example Y-axis open loop drivingwaveform without low pass filtering. As shown by the difference betweenthe uncorrected actual position waveform 730 that corresponds to theactual mirror position and the waveform 732 for the commanded mirrorposition, there is a fairly significant error that would correspond tothe measured error 712 if closed loop feedback were not used to sensethe actual mirror position. That is, while the driving waveform 732seeks to drive the mirror to a desired position via a square wave, inactuality, as the mirror moves toward the desired position, the mirrorwill overshoot and undershoot the desired position in a fluctuatingmanner as shown by 732, which corresponds to the settling time formirror positioning. This settling time repeats itself as the square wave732 transitions to a low state following the high state.

The right frame of FIG. 7C shows an example Y-axis closed loop drivingwaveform. In this example, closed loop feedback is employed as describedin connection with FIG. 7A to reduce the settling time error. As shownby the similar shapes of the waveform 736 for the commanded position andthe waveform 738 for the actual position, the closed loop feedback iseffective to effectively eliminate the large settling time error that isshown in the left frame of FIG. 7C. It should be understood that thegeneral amplitude values shown in FIG. 7C are inconsequential, and theimportant characteristic is the comparative shape and timing of eachwaveform.

Thus, based on the closed loop adjustments to the driving waveforms, itis believed that finer control over mirror scan positions can beachieved that will, over time, reduce the detected error signal.

While the examples of FIGS. 6A-C describe the use of closed loop opticalfeedback control, it should be understood that other modes of closedloop feedback control of the mirror scan positions can be employed. Forexample, closed loop capacitive feedback control may be employed. Withcapacitive feedback, a capacitor would be formed by the edge of themirror (serving as a first capacitor plate) and a reference metal plate(serving as a second capacitor plate), with the air/vacuum gap betweenthe mirror edge and reference plate serving as the capacitivedielectric. As the mirror's scan position changes, the gap distance willchange, thus causing a change in the capacitor's capacitance. The closedloop capacitive feedback system would thus track a capacitance change(via a voltage measurement) as the mirror changes scan positions todetermine the actual mirror position. Based on the determined actualmirror position, the error relative to the desired position can becomputed. As additional examples, different forms of optical feedback orcapacitive feedback can be used for closed loop feedback control ofmirror positioning.

Dynamic Scan Patterns:

To further improve performance of the scanning ladar transmission system104, it is preferred that dynamic scan patterns be employed. With afixed scan pattern, the beam scanner 304 will scan through the full scanarea 510 and the laser source 300 is fired when the scanning mirrors arepositioned to target a desired range point. Thus, with a fixed scanpattern, it is expected that the driving waveforms used to define mirrorscan positions will not vary as a function of the range points on theshot list 112.

By contrast, with a dynamic scan pattern, the beam scanner will not scanthrough the full scan area 510, and instead the mirrors will target therange points on the shot list 112 in accordance with a scan pattern thatvaries as a function of the ordered range points on the shot list 112.Because the shot list 112 will be varying from frame to frame capturedby the environmental sensing system 106, the scan pattern is dynamic asit will also vary from frame to frame.

FIGS. 8A-F depict examples of different dynamic scan patterns that couldbe employed by the system

FIG. 8A describes an example base addressing scheme for a dynamic scanpattern. As a general matter, the mirrors will be scanned to produce ascan pattern that generally proceeds from left to right across a toprow, then downward to the next row where the scan direction is fromright to left, and so on, where the scan direction alternates each rowdownward. However, it should be understood that alternative basepatterns could be employed, such as starting from a bottom row andworking upward, and/or changing the alternating scan directions to startfrom right to left. Also, as shown by FIG. 8A, a dynamic scan patternmay include line repeats, line skips, and inter-line skips, andinter-line detours, as explained below.

With a line repeat, the beam scanner maintains the Y-axis position forthe transmitter during successive left-to-right and right-to-left scansalong the X-axis. A line repeat may be needed when the two pixels on theshot list are in the same row but are too close together to be targetedduring a single pass. In such a case, the line can be repeated, and theadditional pixel on the shot list can be targeted during the return scanpass. A minimum pixel spacing constraint for the dynamic scan patterncan govern the need for line repeats. The minimum pixel spacingcorresponds to the fastest rate the laser source 300 can fireback-to-back shots. It should also be understood that the minimum pixelspacing parameter can vary by position within the scan area 510 inembodiments where resonant beam steering is employed.

A sample line repeat scenario is shown by FIG. 8A with respect to samplerow area that includes a group of 4 pixels that share the same row. Inthis example, the minimum pixel spacing is 5 pixels. The laser source300 fires at pixel (1) first. Since the next pixel (2) is more than fivepixels away, the laser can fire at it on the same pass. However pixel(5) is too close in time to be addressed, so the system will address iton the next pass after it performs a line repeat. Thus, during theleft-to-right scan, the laser source 300 passes over pixel (5) and firesat pixel (3). The scanner and laser then finish scanning the row byfiring at pixel (4) and repeat the same row, this time scanning fromright to left. On this following pass, pixel (5) is addressed and thescanner is allowed to move on to the next row. With a line repeat, thescanner can be configured to repeat the row until all required pixelshave been interrogated.

With a line skip, the beam scanner adjusts the Y-axis position for thetransmitter by more than one row after completing a scan pass of a givenrow. A line skip may be employed when there are no pixels in the shotlist for a row or a set of successive rows. An example line skip isshown in the scan timing diagram of FIG. 8A.

With an interline skip, the beam scanner adjusts the Y-axis position forthe transmitter before completing a full scan across a given row. Aninterline skip may be employed when there is a large contiguous portionof a row that is empty. In such a case, the system may choose to addressthe next row or rows if that will result in a faster scan of the scanarea with respect to the shot list. Examples of interline skips areshown in the scan timing diagram of FIG. 8A.

An interline detour is a type of interline skip. With an interlinedetour, the beam scanner adjusts the Y-axis position from the given rowto a new row for the transmitter before completing a full scan acrossthe given row, but returns to the given row before completing the scanacross the new row. As explained below, an interline detour can serve asan opportunistic and valuable detour from the current row in the normalraster trajectory to address a pixel in a row or a pixel that would haveto normally be skipped because it is too close to another pixel in thesame row. An example of an interline detour is shown in the scan timingdiagram of FIG. 8A.

FIG. 8B depicts an example dynamic scan pattern that employs linerepeats, line skips, interline skips, and interline detours as discussedin connection with FIG. 8A. The dynamic scan pattern of FIG. 8B can beemployed with a beam scanner that includes dual scanning mirrors wherethe X-axis mirror scans in two directions as a fast axis mirror at aresonant frequency and where the Y-axis mirror scans in two directionsas a slow axis mirror in a non-resonant, point-to-point mode. Closedloop feedback control, such as the closed loop optical feedback controldescribed in connection with FIGS. 6A-C, can be employed to providephase drift correction of the Y-axis mirror and fast settling time forthe X-axis mirror. Thus, in an example embodiment, optical feedbackcontrol can mitigate Y-axis settling time and X-axis phase shift issues.As noted, with two-direction Y-axis movement and interline detours, theY-axis is capable of going back on itself during a single horizontalscan pass as shown by the interline detour example of FIG. 8B. Theinterline skipping/detouring can increase scanner efficiency and reducethe frame time (i.e., increase the frame rate).

FIG. 8C depicts an example dynamic scan pattern that also employs linerepeats, line skips, interline skips, and interline detours, but wherethe dynamic scan pattern of FIG. 8C can be employed with a beam scannerthat includes a scanning Y-axis mirror (such as a Y-axis MEMS mirror)and an X-axis spinning polygon mirror. The X-axis spinning polygonmirror scans in one direction as a fast axis mirror in a non-resonantmode, and the Y-axis MEMS mirror scans in two directions as a slow axismirror in a non-resonant, point-to-point mode. Closed loop feedbackcontrol, such as the closed loop optical feedback control described inconnection with FIGS. 6A-C, can be employed to provide phase driftcorrection of the X-axis mirror and fast settling time for the Y-axismirror. Optionally, a closed loop position encoder can be used in placeof optical feedback to finely control the positioning of the spinningpolygon mirror. The primary functional difference between the dynamicscan patterns of FIGS. 8B and 8C is that the dynamic scan pattern ofFIG. 8C can only scan in one direction and does not scan in a resonantfashion.

FIG. 8D depicts an example dynamic scan pattern that scans in a spiralpattern such as an elliptical/oval spiral. The dynamic scan pattern ofFIG. 8D can support ellipse repeats, ellipse skips, interellipse skips,and interellipse detours, which are elliptical analogs to the linerepeat, line skips, interline skips, and interline detours respectivelydiscussed in connection with FIGS. 8A-C. The beam scanner can employdual scanning mirrors such as an X-axis MEMS mirror and a Y-axis MEMSmirror. Both the X-axis and Y-axis mirrors can scan in two directions ina resonant mode. It is expected that a scanner that employs the scanpattern shown by FIG. 8D will include relay imaging optics between thetwo mirrors. Both mirrors can scan near a resonant frequency, which maybe the first resonant frequency. FIG. 8D shows an exampleelliptical/oval spiral pattern where two single axis mirrors areoperating near or at one of their resonant frequencies (same frequencyand phase for both). The amplitude of the spiral is controlled by theamplitude of the driving voltages on the mirrors. The same conceptapplies as in the dynamic scan pattern of FIG. 8B, but the concentricellipses are the “rows” or the “fast axis” and the pixels lie in therings. The “columns” or “slow axis” is addressed by the amplitude ofboth mirrors. The spiral pattern arises from the transition betweenconcentric oval rings. A ring can be repeated or skipped just like inthe “raster-like” dynamic scan pattern of FIG. 8B, either after a fullrevolution (an ellipse skip) or between full revolutions (aninterellipse skip or interellipse detour). Closed loop feedback control,such as the closed loop optical feedback control described in connectionwith FIGS. 6A-C, can be employed to finely control the mirror scanpositions.

The dynamic scan patterns of FIGS. 8A-C can be characterized as basescan patterns. These base scan patterns can be embedded into higherlevel macro dynamic scan patterns such as those depicted in connectionwith FIGS. 8E and 8F.

FIG. 8E depicts an exemplary macro dynamic scan pattern where the scanarea is divided into a plurality of blocks, and where a base dynamicscan pattern is executed within a portion of each block as the scannerproceeds from block to block. As examples, the dynamic scan patterns ofFIGS. 8B and 8C (or other dynamic scan pattern) can be embedded withineach block portion.

A reset jitter may arise when a large block of pixels are addressed forrelatively contiguous scanning, and this reset jitter may lead to adegraded signal-to-noise ratio (SNR). To reduce this possible SNRdegradation, the dynamic scan pattern can break the scan area defined bythe shot list into smaller blocks. The size of these smaller blocks canbe influenced by a maximum amount of background light desired for aladar receiver. Thus, for a ladar receiver that employs a blockstructure, the block sizes can correspond to these blocks. Each blockcan be re-visited by the scanner several times as shown by FIG. 8E. Oneframe is broken up into several interlaced subframes as shown. Eachsubframe corresponds to a change in direction of the Y-axis/slow axis inthe macro pattern. The example of FIG. 8E shows a three block frame withfive subframes, and where there are several rows in each block.

This macro pattern essentially divides blocks by the total number ofpixels that can be grouped together in one pass. As noted, that numbercan depend on parameters such as the SNR.

FIG. 8E shows an example of a dynamic macro scan pattern. In the exampleof FIG. 8E, the 1st and last blocks will address a few more pixels eachsub-frame than the other blocks so that timing is orderly, which causesthe SNR in those pixels to be a little less. However, since this is awayfrom the center pixels of the frame this degradation in SNR may beacceptable in many applications.

FIG. 8F depicts an exemplary macro dynamic scan pattern similar to themacro scan pattern of FIG. 8E, but where the macro scan switches betweenthe block portions of two blocks before proceeding on to the next twoblocks. In other words, the scanner ping-pongs between a pair of blocksuntil all range points within that pair of blocks are addressed,whereupon the scanner moves on to another pair of blocks and repeats. Aswith FIG. 8E, the dynamic scan patterns of FIGS. 8B and 8C (or otherdynamic scan pattern) can be embedded within each block portion of theFIG. 8F macro scan pattern.

Translation of a Range Point List into a Shot List:

Any of a number of processing rules can be used to translate a rangepoint list 240 into a shot list. As noted above, the translation of arange point list 240 into a shot list (see step 204 in FIG. 2A) can beperformed by processor 120 or by a beam scanner controller 308. Therules can be executed in software, implemented in hardware (e.g., on afield programmable gate array (FPGA) or application-specific integratedcircuit (ASIC), or some combination of the two. As such, the processorused to perform the translation from the range point list to the shotlist can be any processor suitable for use within processor 120 or beamscanner controller 308, including but not limited to a microprocessor,FPGA, ASIC, or the like. FIG. 9A depicts an example process flow forsuch translation where the shot list accommodates interline skipping(but not including interline detours). FIG. 9B depicts an exampleprocess flow for translating a range point list into a shot list wherethe shot list accommodates interline skipping, including interlinedetours.

As shown by FIG. 9A, a range point list 240 serves as input to theprocess flow. At step 900, the first N rows of the range point list areloaded into a buffer 950. In this example, it is presumed that the rangepoint list already has the range points in at least row order (e.g.,starting from the top row and progressing downward). However, if this isnot the case, the process flow can also sort the range points into a roworder so that the first N rows can be loaded into buffer 950. In thisexample embodiment, the value for N is 2, in which case the buffer mayhold the range points for Row Y1 and Row Y2, with each row comprisingone or more range points. It should be understood that the use of a2-row input buffer is an example only, and a practitioner may choose toemploy a large buffer that supports the consideration of N rows of rangepoints (where N>2). While such an increase in the number of rows andpixels under evaluation at a given time will require additionalprocessing steps and additional buffer space, the practitioner can relyon guidance from the 2-row example provided by FIGS. 9A and 9B whenimplementing such a process flow. Also, it should be understood that asthe process flow operates to read pixels out of the N row buffer forscheduling into the shot list, step 900 will operate to keep updatingbuffer 950 with the next row as each row is completed.

At step 902, the processor sorts the pixels into the buffer rows andtags each pixel with a scan direction. The default scan pattern for theshot list can be a scan pattern that is a left-to-right scan for eachrow. Another option is a default scan pattern that is a left-to-rightscan direction for the first row, changes to a right-to-left scandirection for the second row, and then continues alternating scandirections for subsequent rows. In the example embodiment of FIG. 9A,the default scan pattern can be a left-to-right scan direction for eachrow.

With step 902, the pixels in each row are sorted so that they areordered in accordance with the default scan pattern. Thus, for a rowhaving a left-to-right scan pattern, the pixels are sorted such that theleftmost pixel is first, the second leftmost pixel is next, and so onuntil the rightmost pixel which will be last. For a row having aright-to-left scan pattern, the pixels will be sorted in the oppositemanner. Each pixel may also be tagged with control metadata thatidentifies the scan direction for that pixel (e.g., a flag indicative ofwhether a left-to-right scan or a right-to-left scan will hit thepixel). It should also be understood that the range point list 240 mayarrive at the process flow of FIG. 9A having already been pre-sorted inthis fashion, in which case step 902 would not be needed.

At step 904, the first two pixels from the buffer 950 are read toidentify a current pixel for evaluation and a next pixel candidate. Thispair of pixels can be evaluated to determine how they should be orderedin the shot list.

At step 906, the process flow computes a ΔT between the current pixeland the next pixel candidate. This ΔT value is representative of theamount of time required for the scanner to scan from the current pixelto the next pixel candidate. ΔT can be computed as a function of thex-coordinates of the current pixel and next pixel candidate as well asthe sinusoidal trajectory and frequency of the fast axis. Also, theprocessor can perform step 906 for only the current pixel and the nextpixel candidate, or it can perform step 906 in a batch mode wherein theprocessor computes ΔT for a number of pixel pairs before proceeding tostep 908. For example, in a batch mode, the processor can compute ΔTvalues for each pair of neighboring pixels in the 2-row buffer 950. Asanother batch mode example, the processor can compute ΔT values for eachpossible permutation of pixel pairs for the pixels in the 2-row buffer950.

Next, at step 908, the processor compares the computed ΔT for thecurrent pixel and next pixel candidate with a parameter that correspondsto a minimum amount of time that is needed between successive ladarpulses (“Min Pulse-to-Pulse Time”). For an example embodiment, the MinPulse-to-Pulse Time is a constant whose value is set as a function ofthe maximum range or the minimum energy required from the laser source300. For example, for an embodiment where a fiber laser is used, thefiber laser will have a minimum amount of energy required from it, andMin Pulse-to-Pulse Time is set so that laser recharge time is longenough to allow this minimum amount of energy to be build up.Furthermore, it should be understood that the pulse rate for the lasersource affects characteristics such as range and SNR. For example, bydecreasing the pulse rate, the range for the system would be increased.As such, while the Min Pulse-to-Pulse Time is a constant in an exampleembodiment, it should be understood that this constant can be adjustableas a system level setting. Furthermore, it should be understood that theMin Pulse-to-Pulse Time need not be the same everywhere in the field ofview/scan area.

If step 908 results in a determination that the computed ΔT is less thanthe Min Pulse-to-Pulse Time, this means that the next pixel candidate istoo close to the current pixel, in which case the next pixel candidateis scheduled for the next pass of the scanner. Thus, at step 910, thenext pixel candidate is scheduled into the shot list buffer 952 for areturn scan of that row in a format where the last skipped is the firsthit (i.e. a LIFO or last in first out). This means a line repeat will beneeded to lase the next pixel candidate, and the next pixel candidatewill be placed into the shot list after any other pixels of the currentrow that will not need to be lased on the return scan. To flag the linerepeat, the next pixel candidate can be re-tagged with the opposite scandirection. In a situation where the default scan pattern for the sortedrows is an alternating scan direction, it should also be understood thatthe line repeat may also mean that the pixels in the next row will behit from the opposite scan direction relative to the default scanpattern, in which case step 910 also re-tags the pixels in the next rowwith the opposite scan direction relative to their previous scandirection and re-sorts those re-tagged pixels in accordance with theirnew scan direction.

Then, at step 912, the processor increments the next pixel candidatesuch that the new next pixel candidate will be the pixel in the rangepoint list buffer 950 that is immediately after the current next pixelcandidate (while the current pixel remains the current pixel so that thecurrent pixel can next be evaluated relative to the new next pixelcandidate, unless the new next pixel candidate is on the next row, inwhich case the processor will use the first pixel in the next row as thenew current pixel and the pixel after the first pixel of the next row asthe new next pixel candidate). It should be noted that in the situationwhere the next pixel is on the next row, the pixels on the next row mayneed to be re-sorted and re-tagged with the opposite scan direction. Theprocessor then returns to step 906 and the process flow repeats. FIG. 9Eshows an example of a shot list where an interline skip is present as aresult of a process flow such as the one shown by FIG. 9A.

If step 908 results in a determination that the computed ΔT is not lessthan the Min Pulse-to-Pulse Time, this means that there is a sufficientamount of time for the scanner to lase the current pixel, scan to thenext pixel, and lase the next pixel. As such, the next pixel candidatecan be scheduled as the next pixel after the current pixel in the shotlist. However, the processor will also test the next pixel to assesswhether it is a candidate for an interline skip (step 914).

To test the next pixel candidate at step 914 for a possible interlineskip, the processor looks for two conditions to be met: (1) the currentpixel and next pixel candidate are on different rows, and (2) a linerepeat is not needed to hit the pixels on the current row in a returnscan. If these conditions are not met, then the next pixel candidate isnot an interline skip candidate, and the next pixel candidate isscheduled as the next pixel in the shot list buffer 952 at step 918 (inwhich case no interline skip is used). If these two conditions are met,then at step 916, the processor determines whether there is sufficienttime for the scanner to lase the current pixel, scan to the next pixelcandidate on the new row, and lase that next pixel candidate. To makethis determination, the computed ΔT is compared with a SkipTime(N)parameter. The SkipTime(N) parameter defines a minimum amount of timethat is needed for the scanner to jump from the current row to the nextrow. The value of N can correspond to the number of rows underconsideration in the buffer.

If ΔT is less than SkipTime(N), this means there is an insufficientamount of time for the scanner to jump to the next row and hit the nextpixel candidate. In this situation, the process flow proceeds to step918 and the next pixel candidate is scheduled as the next pixel withoutan interline skip. This means that the scanner will continue its scan ofthe current row to the end of the row, jump to the next row and scan inthe opposite direction to the next pixel candidate. As such, the nextpixel may need to be re-tagged to change its scan direction in view ofthe scan direction that will be used by the scanner to reach that pixel.

If ΔT is greater than SkipTime(N), this means there is a sufficientamount of time for the scanner to jump to the next row and hit the nextpixel. In this situation, the process flow proceeds to step 922. At step922, (1) the next pixel candidate is scheduled as the next pixel in theshot list buffer 952, and (2) the current pixel is tagged with aninterline skip alert to inform the scanner that the next pixel requiresan interline skip.

Step 920 can be reached from either step 918 or step 922. At step 920,the processor increments the current pixel and the next pixel candidate.The current next pixel candidate will become the new current pixel, andthe new next pixel candidate will be drawn from buffer 950. If the nextpixel in buffer 950 is on the next row, then the processor may need tore-sort the pixels of the next row (and change their scan directions)before reading the new next pixel candidate to accommodate the scandirection that will be used to target those pixels. For example, assumethe new current pixel will be x5y1 (sitting on row 1 and having aleft-to-right scan direction) and the next pixel in buffer 950 is pixelx2y2 (sitting on row 2 and having a left-to-right scan direction), butpixel x2y2 shares row 2 with pixels x6y2 and x9y2 (where x6y2 and x9y2are the remaining pixels for row 2 in buffer 950). To accommodate adesired right-to-left scan direction for row 2, the processor canre-sort the pixels in row 2 so that their order in the buffer 950 isx9y2, x6y2, and x2y2 (rather than x2y2, x6y2, and x9y2) while alsochanging their tagged scan directions to right-to-left. Thus, x9y2 wouldserve as the new next pixel candidate rather than x2y2. The processorthen returns to step 906 and the process flow repeats.

The process flow of FIG. 9A thus produces a shot list in the shot listbuffer 952 that supports a dynamic scan pattern with interline skips.

As noted, FIG. 9B depicts an example process flow that supportsinterline skips that include interline detours. Steps 900-922 generallyoperate as described in connection with FIG. 9A, although step 914 willbe replaced by a step 930 that not only tests for an interline skipscenario as described for step 914 in FIG. 9A but also tests for apossible interline detour scenario.

To accommodate interline detours, the process flow of FIG. 9B alsoconsiders a parameter that corresponds to a minimum time required forthe scanner to go from its current row to another row that is N rowsaway, visit one or more pixels in the another row, and then go to backto the next pixel in the current row (“DetourTime(N)”, where in theexample of FIG. 9B, N=2). The DetourTime(N) parameter can be a constantwhose value is mostly set as a function of the electro-mechanicalproperties of the Y-axis.

Thus, for the process flow of FIG. 9B, step 930 not only tests thecurrent pixel-next pixel candidate pair to assess whether the next pixelcandidate is an interline skip candidate (see step 914 of FIG. 9A), butstep 930 will also test the current pixel-next pixel candidate pair toassess whether the next pixel candidate is an interline detourcandidate. To evaluate for a possible interline detour, the processorchecks whether the current pixel and next pixel candidate share the samerow. If they share the same row, there is the possibility of aninterline detour, and the processor proceeds to step 934.

At step 934, the processor determines whether there is sufficient timefor an interline detour. It does so by comparing the computed ΔT for thecurrent pixel and the next pixel candidate with the DetourTime(N)parameter.

If step 934 results in a determination that the computed ΔT is notgreater than DetourTime(N), then the processor proceeds to step 918,which operates as described in connection with FIG. 9A, from which theprocess flow continues as described in connection with FIG. 9A.

If step 934 results in a determination that the computed ΔT is greaterthan DetourTime(N), this means that an interline detour might bescheduled and the processor proceeds to step 936. At step 936, theprocessor checks whether there are range points on the range point listthat can be visited during the interline detour.

To support this determination, the processor at step 932 will identifywhich range points in the 2-row buffer are skippable due to the computedΔT value for each pair of neighboring pixels in the 2-row buffer. Thatis, step 930 identifies the range points that are likely to be targetedon a return pass of the scanner rather than an initial pass due to thoserange points being too close to the previous range point. It would bedesirable to target such skippable range points via the interline detourif possible so that a return pass of the scanner might be avoided inorder to improve the scan time. It should be understood that whenidentifying skippable points at step 932, the processor can take intoconsideration the scan direction that will be used by the scanner totarget the range points on the row of interest. If step 906 operates ina batch mode as discussed above, step 932 may involve simply identifyingthe second pixel of each pixel pair for a given scan direction whose ΔTvalue is less than the Min Pulse-to-Pulse Time value. If step 906 doesnot operate in a batch mode, then step 932 may also involve computingthe ΔT values for additional pixel pairs in the 2-row input buffer sothat the skippable points can be identified.

In an example embodiment, the processor performs step 932 afterperforming step 906 regardless of whether step 936 is ever reached sothat the system is already ready to perform step 936 should the processflow branch to step 936. However, this need not be the case.

At step 936, the processor evaluates pixels in the 2-row buffer todetermine whether there are any pixels in the buffer that can bescheduled as the next pixel in an interline detour (such pixels can bereferred to as detour pixels). The pool of pixels that are deemed“visitable” for the interline detour can include those pixels in thenext row whose x value falls (1) after the x value of the current pixel(giving consideration to the scan direction of the scanner) but stillproviding enough time for the scanner to reach such an x-coordinategiven the time required for the scanner to jump to next row and (2)before the x value of the next pixel candidate (giving consideration tothe scan direction of the scanner) but still providing enough time forthe scanner to reach the x-coordinate of the next pixel candidate.

If step 936 results in a determination that there is only one suchvisitable pixel for the interline detour, then that visitable pixel isscheduled as the next pixel in the shot list buffer 952 at step 938.

If step 936 results in a determination that there are multiple visitablepixels for the interline detour, and the spacing between these multiplevisitable pixels does not violate the AT constraint, then thosevisitable pixels in sequence are scheduled as the next pixels in theshot list buffer 952 at step 938.

If step 936 results in a determination that there are multiple visitablepixels for the interline detour, but not all can be scheduled for theinterline detour because of ΔT constraints, then priority is given to avisitable pixel that was identified as a skippable pixel at step 932.The visitable skippable pixel would be scheduled at step 938, and step938 would also schedule any remaining visitable pixels if compliant withthe ΔT constraints in view of the scheduling of the visitable skippablepixel.

If step 936 results in a determination that there are multiple visitablepixels for the interline detour, but not all can be scheduled for theinterline detour because of ΔT constraints, and none of the visitablepixels were identified as skippable pixels at step 932, then anotherprioritization scheme can be used to select which of the visitablepixels are scheduled for the interline detour (for example, removingfrom the interline detour the visitable pixel(s) whose removal wouldpermit the largest number of visitable pixels to be scheduled for theinterline detour, and in the case of a tie simply scheduling thevisitable pixel whose x-value is closest to the current pixel). Asimilar prioritization scheme can be used to resolve scheduling in asituation where there are multiple skippable visitable pixels but thoseskippable visitable pixels cannot be scheduled for the same interlinedetour because of ΔT constraints.

At step 938, the current pixel can be tagged with an interline detouralert to inform the scan that an interline detour will be needed to scanto the next pixel in the shot list. Furthermore, if the interline detouroperates to hit all of the pixels on the next row, a new scan directionmay be needed to hit the pixels of the new next row. If this is thecase, step 938 can also involve re-tagging and re-sorting the pixels ofthe new next row in buffer 950. From step 938, the processor proceeds tostep 918, and the next pixel candidate is scheduled as the next pixel inshot list buffer 952 following the detour pixel(s) scheduled at step938.

If step 936 results in a determination that there are not any visitablepixels for the interline detour, then the processor proceeds to step 918as previously described.

Furthermore, it should be understood that when a pixel is scheduled atstep 938 as part of an interline detour, the processor can remove thatpixel from the buffer 950 to avoid it being visited twice during theexecution of the process flow.

The process flow of FIG. 9B thus produces a shot list in the shot listbuffer 952 that supports a dynamic scan pattern with interline skips andinterline detours.

FIG. 9C depicts an example sequence of range points that are scheduledvia a shot list in accordance with the process flow of FIG. 9B. Itshould be understood that the pixels are labeled with an x-axis label xiand a y-axis label yi, where each value of i for xi is incremented toshow the sequencing of the pixels along each row, but not to identifythe distance between pixels. As such, the x-axis distance between pixelsx1y1 and x2y1 is not the same as the x-axis distance between pixels x2y1and x3y1.

As can be seen in FIG. 9C, the shot list sequence includes interlinedetours to shoot pixels x1y3 and x2y3. The bottom line of FIG. 9C showsthe shot list, which identifies the sequence in which the pixels areshot, while the pixel graph of FIG. 9C shows the scan progressionsthrough the rows and columns. To better understand the concept ofvisitable pixels with regard to step 922, it can be seen that pixel x1y3is a visitable pixel for an interline detour from pixel x2y1 given thatit was visited by an interline detour. However, when the interlinedetour from pixel x2y1 was being considered, pixel x2y3 did not qualifyas a visitable pixel for an interline detour from pixel x2y1 (althoughpixel x2y3 did qualify as a visitable pixel from pixel x3y1). The reasonthat pixel x2y3 did not qualify as a visitable pixel for an interlinedetour from pixel x2y1 is that, when the interline detour was beingconsidered from pixel x2y1, the next pixel candidate was x3y1, and thex-axis position of pixel x2y3 falls after the x-axis position of pixelx3y1. As such, pixel x2y3 did not fall within the visitable space for aninterline detour between pixels x2y1 and x3y1.

FIGS. 9D and 9E depict another example sequence of range points that arescheduled via a shot list in accordance with the process flow of FIG.9B. In this example, there is a pixel, x4y1, that is shot after x3y1 buton the return pass of the scanner for that row rather than the initialpass of that row because of the small spacing between x3y1 and x4y1. Aswith FIG. 9C, the bottom line of FIG. 9D shows the shot list portionwhich identifies the sequence in which the pixels are shot, while thepixel graph of FIG. 9D shows the scan progressions through the rows andcolumns. FIG. 9E shows the shot progression for the remaining pixels,which includes an interline skip to progress from shooting pixel x1y4 toshooting pixel x1y5. Thus, for the range point list and shot list ofFIGS. 9D and 9E, three scans are required to shoot the pixels.

FIG. 9F shows a sample range point list 240 and its corresponding shotlist 950, where the shot list 950 is generated in accordance with theprocess flow of FIG. 9B, where the Min Pulse-to-Pulse Time (labeled as“Shot2ShotMinTime” in FIG. 9F) corresponds to 10 pixels and theDetourTime(N) corresponds to 50 pixels (and where N=1). Once again, itshould be understood that different values could be used, andfurthermore, these values could vary over the scan field.

The shot list 950 includes meta-information that accompanies each pixelon the shot list. For example, as shown by column 952, each pixel on theshot list can be associated with a flag that identifies whether thatpixel is to be shot by the scanner during a left to right scan (a valueof “1” in this example) or during a right to left scan (a value of “0”in this example). As another example, as shown by column 954, each pixelon the shot list can be associated with a flag that identifies whetherthat pixel corresponds to a live waypoint or a real fire command. If apixel is flagged as a real fire command pixel, this means that the lasersource will fire a ladar pulse at such pixel. If a pixel is flagged as alive waypoint, this means that the scanner will scan to that pixel totarget it, but the laser source will not fire a ladar pulse toward it.The use of live waypoints can be advantageous in some situations (suchas when a constant fiber laser pump source is used). In this example, avalue of “1” in column 954 serves to identify a real fire command. Asanother example, as shown by column 956, each pixel on the shot list canbe associated with a code that corresponds to a particular pulse patternfor a ladar pulse. Examples of different pulse patterns are discussedbelow. As yet another example, as shown by column 958, each pixel on theshot list can be identified by a flag that identifies whether aninterline skip (which may include an interline detour) was needed totarget the next pixel on the shot list. In this example, a value of “1”would identify that an interline skip was needed to target the nextpixel on the shot list.

With the example of FIG. 9F, it can be seen that the use of interlineskipping and interline detouring in the translation of the range pointlist to the shot list results in one less pass being needed by thescanner to shoot the pixels on the shot list. With such a reduction inscan passes, a higher frame rate can be supported by the system.

Example Beam Scanner Controller 308:

FIG. 10 depicts an example embodiment for a beam scanner controller 308that can be used in connection with driving dual MEMS mirrors 500/502 ininstances where the shot list includes interline skipping and interlinedetours. To provide acceleration, the beam scanner controller 308 cantake the form of a field programmable gate array (FPGA) with logicdeployed thereon as shown in connection with FIG. 10. By leveraging theparallelism that is supported by the reconfigurable hardware logic of anFPGA, the beam scanner controller 308 can operate in an acceleratedmanner. However, other platforms could be used for the beam scannercontroller, including but not limited to microprocessors, ASICs, and thelike.

In the example embodiment of FIG. 10, the beam scanner controllerreceives a range point list 240 as input via FIFO2. FIFO1 can be used tostore fire commands and associated pulse patterns for each fire command.The pulse patterns can be ordered within FIFO1 so as to provide acycling function for different pulse patterns to reduce the risk ofinterference or ambiguity on the part of a ladar receiver that willreceive the reflected ladar pulses.

Component 1000 of FIG. 10 can be configured to perform step 204 of FIG.2A (e.g., the process flow of FIG. 9B to incorporate both interlineskipping and interline detouring). Component 1000 will then output theshot list paired with the control metadata as shown by FIG. 9F and apulse pattern to be used for each pixel. However, once again, it shouldbe understood that the translation of the range point list to the shotlist could be performed by processor 120, in which case the input toFIFO2 would be the shot list rather than the range point list.

The controller 308 will read each pixel out of the shot list in sequence(Present Col, Row) for targeting by the scanner and firing by the lasersource. Lookup tables (LUTs) can be used to convert each x-axis valueand y-axis value for a pixel on the shot list into digital values thatcorrespond to the mirror scan positions need to target such pixel.

For the X-axis, which in this example operates as a fast-axis in aresonant mode according to a sinusoidal trajectory, the column LUT valuewill be used to identify an appropriate time slot for the pixel withinthe scanning mirror's trajectory. For the Y-axis, which in this exampleoperates as a slow-axis in a point-to-point mode, the row LUT value willbe used to identify a voltage needed to drive the Y-axis mirror to adesired scan position. As explained, closed loop feedback control can beused to finely control this Y-axis positioning. The generation of theY-axis driving voltage would then be based on the row LUT and the closedloop feedback. This voltage value can then be fed to a digital-to-analogconverter (DAC) to create the Y-axis driving voltage waveform.

A clock can be used as a source for the sinusoidal X-axis waveform. Asexamples, the clock frequency can be in the 50-100 MHz range. However,it should be understood that other clock frequencies could be used. Totrack the X-axis position for the resonant X-axis mirror, a countingmechanism can be used to track the X-axis position as the clock signalmodulates according to the sinusoid. For example, if the X-axis space isdivided into 3226 positions, the counter can cycle through values from 0to 3225 for the sine wave half period to track X-axis position. Eachcounter value generally corresponds to a time slot for a given positionalong the Y-axis. Moreover, given the sinusoidal nature of the signal,it should be understood that these time slots will not be equallyspaced.

This counter value can then be compared with the column LUT value (andthe left-to-right (L2R) flag for the current pixel to judge whether theX-axis mirror is on target for the column position of the current pixel.A laser trigger signal can then be provided to the laser driver at anappropriate time when the X-axis position of the mirror corresponds tothe X-axis position of the current pixel to be targeted and the Y-axisposition of the mirror corresponds to the Y-axis position of the currentpixel. In an example embodiment, the laser trigger can be timed to occurin the middle of the X-axis time slot of the sinusoid for the targetedpixel.

The laser driver can respond to this laser trigger signal to drive thelaser to fire a ladar pulse toward the targeted pixel in accordance withthe pulse pattern that had been associated with that pixel. The laserdriver can also provide any desired pump modulation for the laser.

Also, an Hsync signal can be used by the beam scanner controller toidentify where the zero point of each row is, which can facilitatesY-axis transitions.

Additional Beam Scanner Embodiments:

As indicated previously, additional example embodiments for the beamscanner 304 may employ a MEMS mirror in combination with a spinningpolygon mirror (see FIGS. 11A-G). Such a polygon mirror may spin atrates in the range of approximately 2 kHz to approximately 10 kHz.However, this need not be the case as other values can be used. Forexample, in additional example embodiments, an N-sided spinning polygonmirror can spin at a rate such that its rotational frequency multipliedby N is around 10-18 times faster than a resonant frequency for the MEMSmirror. Thus, if the MEMS mirror is operating at close to a fullbandwidth of around 2 kHz, and the spinning polygon mirror has 4 sides,the spin rate for the polygon mirror can be in a range between around2.5 kHz to around 4.5 kHz. It should be understood that other ratios mayalso be used. For ease of illustration, some of the spinning polygonsare shown as circles in FIGS. 11A-G. An example of such an arrangementis shown by FIG. 11A, which includes both a top view and a perspectiveview of such a beam scanner 304. In this example, a single targetinglaser source 300 is employed. The MEMS mirror 1100 is a Y-axis, slowaxis mirror while the spinning polygon mirror 1102 is an X-axis, fastaxis mirror. The spinning polygon mirror 1102 is positioned to receivean incident laser pulse from laser source 300 (as well as an alignmentlaser beam from alignment laser 650 for feedback control purposes—seeFIG. 6C). The spinning polygon mirror 1102 rotates as shown byrotational direction 1104, and it directs the received laser pulse tothe Y-axis MEMS mirror 1100, which in turn reflect the laser pulse to adesired location in the scan area shown by FIG. 11B.

Furthermore, the general arrangement shown by FIG. 11A for a singlescanner can also employ two lasers 300 to serve as a double scanner asshown by FIG. 11B. FIG. 11B depicts a perspective view and a top view ofa double scanner that employs two Y-axis MEMS mirrors 1100 and a singleshared spinning polygon mirror 1102. Separately positioned lasers 300can direct laser pulses 1110 and 1112 onto the spinning polygon mirror1102, and this results in the beam scanner generating two targetedoutgoing ladar pulses.

FIG. 11C depicts how this general arrangement can support additionaltargeting lasers, with example embodiments including a triple scanner, aquad scanner, and an N scanner, where N is effectively limited by thespace availability for positioning different lasers 300 that lase thespinning polygon from different positions. As an example, N may reachvalues of 4-16 (or larger) depending upon the desires and needs of apractitioner as discussed below.

FIG. 11D depicts examples of different polygons that can be employed asthe spinning polygon mirror 1102, with examples including a square andoctagon in addition to the hexagon example shown by FIG. 11A.Furthermore, an N-sided polygon can be employed for mirror 1102, where Nis constrained by parameters such as the size of the Y-axis or secondarymirror, the view angle, and the diameter of the polygon to name just afew.

FIG. 11E shows a top view of a beam scanner employing a hexagonalspinning polygon mirror and 4 MEMS mirrors. This example supports 4 scanfields of around 110 degrees. However, up to N independent scan fieldsof around 20-180 degrees could be supported. It should be understoodthat a 4-sided mirror spinning at 5 kHz means that a possible row rateof 20 kHz may be supported, although time would be needed for the Y-axisto step down between rows, so the actual row rate may be a lower value(such as around 10 kHz). In general, increasing the number of sides forthe spinning polygon mirror means smaller scan fields, where the numberof scan fields is more dictated by polygon diameter and Y-axis size, butthe size and speed of the Y-axis will also influence the relationshipbetween the number of polygon sides and the number of scan fields andscan field size. Further still, the scan fields can exhibit symmetricangles or non-symmetric angles as shown by FIG. 11F, where the choicebetween symmetric or non-symmetric angles can be driven by desires forhigher resolution in one scan field versus another.

FIG. 11G shows different ways of tilting the vertical field of view(FOV) so that, for example, a car can see the ground and the horizon aswell as part of the sky. This can become an issue when there is morethan one scan field per spinning polygon mirror.

FIGS. 12A and B show examples of laser pulse encoding patterns that maybe employed by the laser source when transmitting ladar pulses. Theseencoding patterns are types of intensity modulation schemes that can beapplied to the ladar pulses targeted at individual range points. The useof such encoding patterns helps reduce interference and/or increasedynamic range to obtain better accuracy. The ladar pulses can range froma simple no code single pulse or pulse burst to a complex N-code pulseburst to a asymmetric amplitude modulation (AM) bursts.

For example, FIG. 12A examples of pulse position modulation (PPM). Anexample ladar pulse for PPM can have a pulsewidth of around 0.1 toaround 10 ns, and pulse position modulation (PPM) can be employedbetween pulses. As an example, 3 to N pulses can be used, with thepulses being around 1-10 ns apart. It should be understood that thesevalues are examples only. PPM allows multiple range requests to exist inthe air simultaneously. Thus, multiple modulated pulses fired in closesuccession by a scanning ladar transmission system can be in the air atthe same time, and a receiver can meaningfully interpret the reflectionsof those modulated pulses via demodulation. By way of example, ascanning ladar transmission system can employ two (or more) lasers forgenerating ladar pulses, where these ladar pulses are pulse modulatedrelative to each other via PPM. Laser 1 can fire its PPM pulses in closesuccession with Laser 2's firing of its PPM pulses without interferingwith each other. Such an arrangement can permit the scanning ladartransmission system to use a lower effective minimum pulse-to-pulse timebecause Laser 1 can be recharging while Laser 2 fires (and vice versa).PPM also provides a buffer against interference from the co-location ofmultiple ladar systems. Thus, if Transmitter 1 (for example, deployed onVehicle 1) is in close proximity to Transmitter 2 (for example, deployedon Vehicle 2), the two scanning ladar transmitters can fire ladar pulsesin a manner with little to no optical interference between the two. Useof PPM can also reduce the signal-to-noise ratio (SNR). FIG. 12A showsan example generalization of PPM, where N pulses are used. The firstpulse is always there, any combination of N-1 pulses can be positionedafter the first pulse. FIG. 12A also shows some example basic patternsfor PPM.

Intensity modulation can also be used for similar purposes as PPM. Forexample, intensity modulation can also allow for the transmission ofmultiple interrogations simultaneously because the interrogations can beseparated later through demodulation techniques. Intensity modulationcan also reduce or eliminate optical interference that might otherwiseresult from the use of multiple ladar transmitters in close proximity toeach other. Furthermore, intensity modulation can increase the dynamicrange of a scanning ladar transmission system, which results in improvedrange accuracy.

As an example of intensity modulation, FIG. 12B shows examples of basicpatterns for short asymmetric amplitude modulation (AM) pulse bursts.The ladar pulses can have different amplitudes in different ratios.Short asymmetric AM pulse bursts provide for an increase in dynamicrange (i.e., the signal stays within the acceptable intensity range tobe properly detected so that range information can be detected moreaccurately). An example ladar pulse for an AM pulse burst can have apulsewidth of around 0.1 to around 10 ns, with around 2 to around 10pulses being included in the burst, and where the pulses are around 1 toaround 10 ns apart. As noted, AM can be used to distinguish theindividual pulses. It should be understood that these values areexamples only. Moreover, it should be understood that PPM may be used inaddition to AM.

Furthermore, it should be understood that additional or alternatetechniques could be employed to reduce interference and resolvepotential ambiguities, including but not limited to polarizationmodulation, phase modulation with coherent combining, or even the use ofadditional lasers having different colors. Each additional oralternative technique can provide its own tradeoffs for use in thesystem. For example, the use of two lasers of different colors canprovide an advantage in permitting the use of a lower Min Pulse-to-PulseTime for the shot lists (as one laser can be re-charging while the otherlaser is firing or it allows two simultaneous received pulses to bedemodulated by a receiver).

Additional Embodiments for Range Point Down-Selection

It should be understood that the dynamic range point selectiontechniques described herein can also be used to effect improvements inladar technology in other ways.

For example, dynamic range point selection techniques can be used as apost-scan compression tool rather than a pre-scan tool. That is, ratherthan using the dynamic range point selection technique described hereinto limit the number of range points that are targeted by a transmittedladar pulse, the dynamic range point selection techniques can be used asa compression tool on a high volume ladar point cloud.

For example, the scanning ladar transmission system could be employed toshoot a full array of range points (as opposed to the sparse arraydescribed in connection with embodiments that are disclosed above). Thiswould result in the creation of a point cloud with a large volume ofrange points. Then, post-scan, a dynamic range point selection techniquesuch as the one described in connection with FIGS. 2C and 2D could beperformed to choose which range points should be retained for acompressed point cloud. While such post-scan compression would not enjoythe improvements in frame rate or pulse energy that are exhibited by thepre-scan down-selection of range points, it should be understood thatthe compressed point cloud could provide its own benefits. For example,in situations where there is a need to communicate a point cloud over abandwidth-sensitive channel, the intelligently compressed point cloudwould be advantageous.

The use of the dynamic range point selection technique as a compressiontool for point clouds can be especially useful for compressing 3D pointclouds, which typically have very high volumes of points. As an example,the 3D point cloud can be flattened to a desired 2D perspective, and the2D points can be analyzed to select a subset thereof as intelligentrange points using techniques described herein. This subset of pointscan then serve as the compressed point cloud.

Similarly, a dynamic range point selection technique such as thatdescribed by FIGS. 2C and 2D can be used to compress a point cloud thatwould result from a flash ladar transmission system.

As another example, the scanning ladar transmission system could beemployed to target range points using a classic grid scan rather thanusing a dynamic scan pattern, and the dynamic range point selectiontechnique could be used to select which range points that the lasersource will actually fire a ladar pulse at as the transmitter scansthrough the grid. A classic grid scan would be a fixed scan where thescanning ladar transmission system visits all points in the scan area.However, rather than having the laser source fire at all of the targetedrange points, a dynamic range point selection technique such as thatdescribed by FIGS. 2C and 2D can be used to select which range pointswill be shot at by the ladar transmitter. While such a fixed scan wouldprovide little or no improvement in terms of the system's frame rate orpulse energy relative to the dynamic scan embodiments described herein,the down-selection of range points would still provide some databandwidth reduction and power management benefits because thetransmitter can avoid firing ladar pulses at all of the possible rangepoints.

While the present invention has been described above in relation to itsexemplary embodiments, various modifications may be made thereto thatstill fall within the invention's scope. Such modifications to theinvention will be recognizable upon review of the teachings herein.

What is claimed is:
 1. A system for dynamic ladar scan control, the system comprising: a beam scanner comprising a first mirror and a second mirror; a beam scanner controller; and a feedback system; wherein the first mirror is scanable to a plurality of first mirror scan angles in response to a first control signal to define where the beam scanner is targeted along a first axis in a field of view; wherein the second mirror is scanable to a plurality of second mirror scan angles in response to a second control signal to define where the beam scanner is targeted along a second axis in the field of view, wherein the combination of the first and second mirror scan angles defines a plurality of targetable range points in the field of view for the beam scanner; wherein the beam scanner controller drives scanning of the first and second mirrors by generating the first and second control signals, and wherein the beam scanner controller dynamically generates the second control signal based on shot list data that identifies a plurality of range points within the field of view for targeting with ladar pulse shots to be transmitted into the field of view via reflections from the first and second mirrors so that (1) the dynamically generated second control signal varies as a function of the identified range points from the shot list data to drive the scanning of the second mirror in a point-to-point mode and (2) the beam scanner dynamically targets the identified range points on a shot-by-shot basis; and wherein the feedback system tracks the first and/or second mirror scan angles and produces an adjustment signal based on the tracked first and/or second mirror scan angles, the adjustment signal for adjusting the first and/or second control signal to controllably fine tune where the beam scanner is targeted.
 2. The system of claim 1 further comprising: a processor that selects range points for targeting with ladar pulse shots based on an analysis of scene data that represents the field of view, wherein the shot list data comprises data that represents the selected range points.
 3. The system of claim 2 wherein the processor translates a list of the selected range points into a shot list that comprises an ordered list of the selected range points for targeting with the ladar pulse shots, wherein the shot list defines the shot list data.
 4. The system of claim 3 wherein the second control signal drives the scanning of the second mirror to exhibit a scan pattern that varies as a function of the ordered range points from the shot list.
 5. The system of claim 3 wherein the shot list controls both the scanning of the second mirror and a timing for firing commands provided to a laser source so that the ladar pulse shots target the selected range points.
 6. The system of claim 3 wherein the processor translates the list of the selected range points into the shot list by re-ordering a plurality of the selected range points into a sequence for the shot list based on a plurality of rules that define operational constraints with respect to (1) timings for the scanning of the first and second mirrors and (2) time needed between successive ladar pulse shots.
 7. The system of claim 2 wherein the scene data comprises a frame that represents the field of view, and wherein the processor selects the range points for targeting with ladar pulse shots based on the analysis of the scene data so that the shot list data defines a higher concentration of selected range points for targeting with ladar pulse shots in a first portion of the frame than in a second portion of the frame.
 8. The system of claim 7 wherein the processor performs corner detection on the scene data to identify a corner feature exhibited within the scene data, and wherein the first frame portion includes the identified corner feature.
 9. The system of claim 7 wherein the processor performs edge detection on the scene data to identify an edge feature exhibited within the scene data, and wherein the first frame portion includes the identified edge feature.
 10. The system of claim 7 wherein the processor performs contrast analysis on the scene data to identify a high contrast area exhibited within the scene data, and wherein the first frame portion includes the identified high contrast area.
 11. The system of claim 6 wherein the high contrast area corresponds to a road boundary area.
 12. The system of claim 6 wherein the high contrast area corresponds to a horizon area.
 13. The system of claim 2 wherein the processor applies a range point down selection algorithm to the scene data to select a subset of the targetable range points for targeting with ladar pulse shots.
 14. The system of claim 2 wherein the processor is part of the beam scanner controller.
 15. The system of claim 2 further comprising: a camera that generates a frame image, and wherein the scene data comprises the frame image.
 16. The system of claim 2 further comprising: a laser source that generates the ladar pulse shots for transmission into the field of view via the first and second mirrors.
 17. The system of claim 16 wherein the beam scanner controller provides firing commands to the laser source based on the shot list data so that the generated ladar pulses are transmitted toward the targeted range points as ladar pulse shots via the first and second mirrors.
 18. The system of claim 1 wherein the first and second mirrors comprise MEMS mirrors.
 19. The system of claim 1 wherein the controller uses a clock signal having a frequency in a range of 50-100 MHz as a source for the first control signal.
 20. The system of claim 1 wherein the feedback system tracks the first and second mirror scan angles and produces first and second adjustment signals based on the tracked first and second mirror scan angles for adjusting the first and second control signals respectively to controllably fine tune where the beam scanner is targeted.
 21. The system of claim 1 wherein the feedback system tracks the first mirror scan angles and produces the adjustment signal based on the tracked first mirror scan angles for adjusting the first control signal to controllably fine tune where the beam scanner is targeted.
 22. The system of claim 1 wherein the feedback system tracks the second mirror scan angles and produces the adjustment signal based on the tracked second mirror scan angles for adjusting the second control signal to controllably fine tune where the beam scanner is targeted.
 23. The system of claim 1 wherein the second mirror is optically downstream from the first mirror, wherein the first mirror is optically downstream from a laser source, wherein the first mirror serves as a fast axis mirror, and wherein the second mirror serves as a slow axis mirror.
 24. The system of claim 1 wherein the second control signal defines a dynamic scan pattern for the beam scanner that includes interline skips.
 25. The system of claim 1 wherein the second control signal defines a dynamic scan pattern for the beam scanner that includes interline detours.
 26. The system of claim 1 wherein the first control signal comprises a sinusoidal signal that drives the first mirror in a resonant mode.
 27. The system of claim 1 wherein the feedback system comprises a closed loop feedback system.
 28. The system of claim 27 wherein the closed loop feedback system comprises a closed loop optical feedback system.
 29. The system of claim 1 wherein the beam scanner controller comprises a field programmable gate array (FPGA).
 30. The system of claim 1 wherein the first axis is orthogonal to the second axis.
 31. A ladar transmitter comprising: a first mirror that is scanable to a plurality of first mirror scan angles in response to a first control signal to define where the ladar transmitter is targeted along a first axis in a field of view; a second mirror that is scanable to a plurality of second mirror scan angles in response to a second control signal to define where the ladar transmitter is targeted along a second axis in the field of view, wherein the combination of the first and second mirror scan angles defines a plurality of targetable range points in the field of view for the ladar transmitter; a processor that (1) analyzes scene data representative of the field of view including contrast analysis of the scene data, (2) identifies an area of high contrast in the field of view based on the contrast analysis, and (3) generates a shot list based on the analyzed scene data, wherein the shot list identifies a subset of the targetable range points for targeting with ladar pulse shots, and wherein the identified range points are spatially distributed across the field of view in a manner that exhibits a relatively higher concentration of identified range points in the identified high contrast area than in another area of the field of view; and a controller that drives scanning of the first and second mirrors by generating the first and second control signals, and wherein the controller dynamically generates the second control signal based on the shot list so that (1) the dynamically generated second control signal varies as a function of the identified range points from the shot list to drive the scanning of the second mirror in a point-to-point mode and (2) the ladar transmitter dynamically targets the identified range points with ladar pulse shots on a shot-by-shot basis.
 32. The ladar transmitter of claim 31 wherein the contrast analysis comprises edge detection.
 33. The ladar transmitter of claim 31 wherein the contrast analysis comprises corner detection.
 34. The ladar transmitter of claim 31 wherein the high contrast area corresponds to a road boundary area.
 35. The ladar transmitter of claim 31 wherein the high contrast area corresponds to a horizon area.
 36. The ladar transmitter of claim 31 further comprising: a laser source that generates the ladar pulse shots for transmission into the field of view via the first and second mirrors; and wherein the controller generates firing commands for the laser source based on the shot list.
 37. The ladar transmitter of claim 36 wherein the processor (1) generates a list of the identified range points based on the analyzed scene data and (2) translates the list of identified range points into the shot list by defining an order for targeting the identified range points with ladar pulse shots based on a plurality of rules that reflect operational constraints with respect to (i) timings for the scanning of the first and second mirrors and (ii) time needed between successive ladar pulse shots.
 38. The ladar transmitter of claim 36 wherein the first mirror is optically downstream from the laser source, and wherein the second mirror is optically downstream from the first mirror.
 39. The ladar transmitter of claim 38 wherein the first control signal comprises a sinusoidal signal that drives the first mirror in a resonant mode.
 40. The ladar transmitter of claim 31 wherein the processor comprises a field programmable gate array (FPGA).
 41. The ladar transmitter of claim 31 wherein the controller comprises a beam scanner controller and a system controller.
 42. The ladar transmitter of claim 41 wherein the processor is part of the system controller.
 43. A ladar transmitter comprising: a first mirror that is scanable to a plurality of first mirror scan angles in response to a first control signal to define where the ladar transmitter is targeted along a first axis in a field of view; a second mirror that is scanable to a plurality of second mirror scan angles in response to a second control signal to define where the ladar transmitter is targeted along a second axis in the field of view, wherein the combination of the first and second mirror scan angles defines a plurality of targetable range points in the field of view for the ladar transmitter; a processor that (1) analyzes scene data representative of the field of view, (2) identifies a subset of the targetable range points based on the analyzed scene data, the identified subset serving as a list of range points for targeting with ladar pulse shots, and (3) translates the list of range points into a shot list that re-orders the range points of the identified subset into a sequence of ladar pulse shots based on a plurality of operational constraints, wherein the operational constraints include a limit regarding how much time a laser source needs between ladar pulse shots; and a controller that drives scanning of the first and second mirrors by generating the first and second control signals, and wherein the controller dynamically generates the second control signal based on the shot list so that (1) the dynamically generated second control signal varies as a function of the range points corresponding to the sequence to drive the scanning of the second mirror in a point-to-point mode and (2) the ladar transmitter dynamically targets the range points of the identified subset with ladar pulse shots on a shot-by-shot basis in accordance with the sequence.
 44. The ladar transmitter of claim 43 further comprising: a laser source that generates the ladar pulse shots for transmission into the field of view via the first and second mirrors; and wherein the controller generates firing commands for the laser source based on the shot list and in coordination with the first and second control signals so that the ladar transmitter transmits the ladar pulse shots toward the range points of the identified subset in accordance with the sequence.
 45. The ladar transmitter of claim 44 wherein the laser source includes a fiber laser.
 46. The ladar transmitter of claim 43 wherein the first mirror is optically downstream from the laser source, and wherein the second mirror is optically downstream from the first mirror.
 47. The ladar transmitter of claim 43 wherein the first control signal comprises a sinusoidal signal that drives the first mirror in a resonant mode.
 48. The ladar transmitter of claim 43 wherein the controller comprises a beam scanner controller and a system controller.
 49. The ladar transmitter of claim 48 wherein the processor is part of the system controller.
 50. The ladar transmitter of claim 43 wherein the second control signal defines a dynamic scan pattern for the beam scanner that includes interline skips.
 51. The ladar transmitter of claim 43 wherein the second control signal defines a dynamic scan pattern for the beam scanner that includes interline detours. 